#include <stdio.h>
#include <malloc.h>
typedef char Elemtype;
typedef int status;
//二叉树的存储表示
typedef struct node
{ Elemtype data;
struct node *lchild,*rchild;
}*Bitree,BiTNode;
void CreateBiTree (Bitree T) //按先序遍历次序输入结点的值
{ Elemtype ch;
scanf("%c",&ch);
if(ch=='/') T=NULL;
else
{ if(T=(BiTNode *)malloc(sizeof(BiTNode)))
T->data=ch;
CreateBiTree (T->lchild);
CreateBiTree (T->rchild);
}
}
void PreOrderTraverse(Bitree T)
{ if(T)
{printf("%c ",T->data); PreOrderTraverse(T->lchild);PreOrderTraverse(T->rchild);
}}
void InOrderTraverse(Bitree T)
{ if(T)
{ InOrderTraverse(T->lchild); printf("%c ",T->data) ;InOrderTraverse(T->rchild);
}
}
void PostOrderTraverse(Bitree T)
{ if(T!=NULL)
{ PostOrderTraverse(T->lchild);PostOrderTraverse(T->rchild);printf("%c ",T->data);
}
}
void main()
{ Bitree T;
CreateBiTree(T);PreOrderTraverse(T);InOrderTraverse(T); PostOrderTraverse(T);
}