3 {
1 int i;
4 CSTree T,p,q;
1 TElemType e,e1;
5 InitTree(T);
1 printf("构造空树后,树空否?%d(1:是 0:否) 树根为%c 树的深度6
1为%d\n",TreeEmpty(T),Root(T),TreeDepth(T)); 7
1 CreateTree(T);
8 printf("构造树T后,树空否?%d(1:是 0:否) 树根为%c 树的深度1
9 为%d\n",TreeEmpty(T),Root(T),TreeDepth(T)); 2
0 printf("先根遍历树T:"); 2
1 PreOrderTraverse(T,vi);
2 printf("\n请输入待修改的结点的值 新值:"); 2
2 scanf("%c%*c%c%*c",&e,&e1);
3 Assign(T,e,e1);
2 printf("后根遍历修改后的树T:"); 4
2 PostOrderTraverse(T,vi);
5 printf("\n%c的双亲是%c,长子是%c,下一个兄弟2
6 是%c\n",e1,Parent(T,e1),LeftChild(T,e1),RightSibling(T,e2
7 1));
2 printf("建立树p:\n"); 8
2 InitTree(p);
9 CreateTree(p);
3 printf("层序遍历树p:"); 0
3 LevelOrderTraverse(p,vi);
1 printf("\n将树p插入到树T中,请输入T中p的双亲结点 子树序号3
2 (p为第几棵子树?):"); 3
3 scanf("%c%d%*c",&e,&i);
3 q=Point(T,e);
4 InsertChild(T,q,i,p);
3