#include <stdio.h> #include <stdlib.h> typedef char BTDataType; typedef struct BinaryNode { BTDataType data; struct BinaryNode* left; struct BinaryNode* right; }BTNode; BTNode* BuyNode(BTDataType val) { BTNode* newNode = (BTNode*)malloc(sizeof(BTNode)); if(newNode == NULL) { perror("malloc fail"); return NULL; } newNode->data=val; newNode->left=NULL; newNode->right=NULL; return newNode; } BTNode* OrderBinaryCreateHelper(BTDataType* a,int* pi) { if(a[*pi] == '#') { (*pi)++; return NULL; } BTNode* newNode = BuyNode(a[(*pi)++]); newNode->left = OrderBinaryCreateHelper(a, pi); newNode->right=OrderBinaryCreateHelper(a, pi); return newNode; } void BTreeQrder(BTNode* root) { if(root ==NULL) return ; BTreeQrder(root->left); printf("%c ",root->data); BTreeQrder(root->right); } int main() { char a[101]; scanf("%s",a); int Index = 0; BTNode* root = OrderBinaryCreateHelper(a, &Index); BTreeQrder(root); return 0; }