1 #include <stdio.h>
2 #include <stdlib.h>
3 char s[100];
4 int b;//b用来统计输入的字符串遍历到哪里了。
5 struct node
6 {
7 struct node*left,*right;
8 char c;//定义一颗二叉树。
9 };
10 struct node *creat()
11 {
12 struct node *root;
13 char t;
14 t=s[b++];
15 if(t==',')return NULL;
16 else
17 {
18 root=(struct node*)malloc(sizeof(struct node));
19 root->c=t;
20 root->left=creat();
21 root->right=creat();
22 }
23 return root;//返回根节点。
24 //因为是先序遍历,所以从左节点开始。
25 };
26 void mid(struct node*root)
27 {
28 if(root)
29 {
30 mid(root->left);
31 printf("%c",root->c);
32 mid(root->right);
33 }
34 }
35 void end(struct node*root)
36 {
37 if(root)
38 {
39 end(root->left);
40 end(root->right);
41 printf("%c",root->c);
42 }
43 }
44 int main()
45 {
46 struct node *root;
47 while(scanf("%s",s)!=EOF)
48 {
49 b=0;
50 root=(struct node*)malloc(sizeof(struct node));
51 root=creat();
52 mid(root);
53 printf("\n");
54 end(root);
55 printf("\n");
56 }
57 return 0;
58 }