//Author:张佳琪
#include <stdio.h>
#include <stdlib.h>
typedef struct BiTNode
{
char data;
struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
void PreOrder(BiTree T)
{
if(T==NULL)
return;
printf("%c ",T->data);
PreOrder(T->lchild);
PreOrder(T->rchild);
}
void InOrder(BiTree T)
{
if(T==NULL)
return;
InOrder(T->lchild);
printf("%c ",T->data);
InOrder(T->rchild);
}
void PostOrder(BiTree T)
{
if(T==NULL)
return;
PostOrder(T->lchild);
PostOrder(T->rchild);
printf("%c ",T->data);
}
//以前序遍历方式输入
void CreateBiTree(BiTree *T)
{
char ch;
scanf("%c",&ch);
if(ch=='#')
*T=NULL;
else
{
*(T)=(BiTree )malloc(sizeof(BiTNode));
if(T==NULL)
exit(-1);
CreateBiTree(&(*T)->lchild);
CreateBiTree(&(*T)->rchild);
}
}
int main()
{
BiTree T;
CreateBiTree(&T);
PreOrder(T);
printf("\n");
InOrder(T);
printf("\n");
PostOrder(T);
return 0;
}