#include <stdio.h> #include <stdlib.h> typedef struct TNode{ char data; struct TNode *left,*right; }TNode,*BTree; int index=0; char c[101]; void create(BTree *t){ if (c[index]=='#'||c[index]==' ') { index++; *t=NULL; }else{ *t=(TNode*)malloc(sizeof(TNode)); (*t)->data=c[index]; index++; create(&(*t)->left); create(&(*t)->right); } } void remove_tree(BTree t){ if (t) { remove_tree(t->left); remove_tree(t->right); free(t); } } void inorder(BTree t){ if (t) { inorder(t->left); printf("%c ",t->data); inorder(t->right); } } int main(){ BTree t; // freopen("1.txt","r",stdin); while (scanf("%s",c)!=EOF) { index=0; create(&t); inorder(t); remove_tree(t); printf("\n"); } // fclose(stdin); return 0; } /************************************************************** Problem: 2215 User: admin Language: C Result: Accepted Time:14 ms Memory:1144 kb ****************************************************************/