typedef struct BiNode
{
char data;
BiNode *lchild;
BiNode *rchild;
}BiNode,*BiTree;
void PreOrder(BiTree t)
{
if(t!=NULL)
{
printf("%c\t",t->data);
PreOrder(t->lchild);
PreOrder(t->rchild);
}
}
void InOrder(BiNode *t)
{
if(t==NULL)
return;
InOrder(t->lchild);
printf("%c\t",t->data);
InOrder(t->rchild);
}
void PostOrder(BiNode *t)
{
if(t==NULL)
return;
PostOrder(t->lchild);
PostOrder(t->rchild);
printf("%c\t",t->data);
}
void CreateBiTree(BiTree *tree)
{
char ch;
scanf("%c",&ch);
if(ch=='#')
*tree=NULL;
else
{
*tree=(BiNode *)malloc(sizeof(struct BiNode));
(*tree)->data=ch;
CreateBiTree(&(*tree)->lchild);
CreateBiTree(&(*tree)->rchild);
}
}
int main()
{
BiTree t;
t=(BiNode *)malloc(sizeof(struct BiNode));
CreateBiTree(&t);
PreOrder(t);
InOrder(t);
return 0;
}