33,010
社区成员
发帖
与我相关
我的任务
分享
typedef struct BiTNode
{
int data;//结点数据
BiTNode *lchild;//左子树
BiTNode *rchild;//右子树
}BiTNode,*BiTree;
void CreateBiTree(BiTree &T)
{
char c;
cin>>c;
if((char)c=='`')
{
T=NULL;
}
else
{
T=new BiTNode;//给T开辟内存空间
if(!T)//T为空
{
exit(0);
}
T->data=c;
CreateBiTree(T->lchild);
CreateBiTree(T->rchild);
}
}
void PreOrderTraverse(BiTree T)
{
if(T)//二叉树非空
{
cout<<(char)T->data<<" ";//访问根结点
PreOrderTraverse(T->lchild);//先序遍历左子树
PreOrderTraverse(T->rchild);//先序遍历右子树
}
else
{
cout<<"`"<<" ";
}
}
void InOrderTraverse(BiTree T)
{
if(T)//二叉树非空
{
InOrderTraverse(T->lchild);//中序遍历左子树
cout<<(char)T->data<<" ";//访问根结点
InOrderTraverse(T->rchild);//中序遍历右子树
}
else
{
cout<<"`"<<" ";
}
}
void PostOrderTraverse(BiTree T)
{
if(T)//二叉树非空
{
PostOrderTraverse(T->lchild);//后序遍历左子树
PostOrderTraverse(T->rchild);//后序遍历右子树
cout<<(char)T->data<<" ";//访问根结点
}
else
{
cout<<"`"<<" ";
}
}