#include <stdio.h> #include<stdlib.h> #include<string.h> typedef int BTreeData; typedef struct BTreeNode { BTreeData data; struct BTreeNode* left; struct BTreeNode* right; }BTNode; BTNode* BuyBTNode(BTreeData x) { BTNode* node = (BTNode*)malloc(sizeof(BTNode)); if(node == NULL) { perror("malloc fail"); return NULL; } node->data = x; node->left = node->right = NULL; return node; } BTNode* CreateBinaryTree(char* arr,int* pi) { if(arr[*pi] == '#') { (*pi)++; return NULL; } BTNode* root = BuyBTNode(arr[*pi]); (*pi)++; root->left = CreateBinaryTree(arr,pi); root->right = CreateBinaryTree(arr,pi); return root; } void InOrder(BTNode* root) { if(root == NULL) { return; } InOrder(root->left); printf("%c ",root->data); InOrder(root->right); } int main() { char arr[100]; scanf("%s",arr); int i = 0; BTNode* root = CreateBinaryTree(arr,&i); InOrder(root); return 0; }