#include #include typedef struct Btreenode { struct Btreenode *lchild,*rchild; char data; }Bitreenode,*Bitree; //初始化 Bitree Initree() { Bitree p; p=(Bitreenode *)malloc(sizeof(Bitreenode)); p->lchild=p->rchild=NULL; return p; } //创建二叉树 ABD#GJ##K##E##C#FH##IL### ABCD##E###F#GH##I#J#K## void Creat(Bitree *p) //指向指针的指针 { char ch=getchar(); if(ch=='#') (*p)=NULL; else { //Bitree k; *p=(Bitreenode *)malloc(sizeof(Bitreenode)); (*p)->data=ch; Creat(&(*p)->lchild); Creat(&(*p)->rchild); } //return 1; } //先序遍历 void First(Bitree p) { if(p) { printf("%2c",p->data); First(p->lchild); First(p->rchild); } } //中序遍历 void Middle(Bitree p) { if(p) { Middle(p->lchild); printf("%2c",p->data); Middle(p->rchild); } } //后序遍历 void Last(Bitree p) { if(p) { Last(p->lchild); Last(p->rchild); printf("%2c",