#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);
printf("/n");
InOrderTraverse(T);
printf("/n");
PostOrderTraverse(T);
}