#include<iostream>
#include<cstring>
using namespace std;
#define DataType char
typedef struct Node
{
DataType data;
struct Node* lchild;
struct Node* rchild;
struct Node* parent;
}BiNode,*BiTree;
//必须按照输的前序遍历方式输入
BiTree CreatBiTree(){
DataType ch;
BiTree T;
cin>>ch;
if(ch=='#') T=NULL;
else{
T=new BiNode;
T->data=ch;
T->lchild=CreatBiTree();
T->rchild=CreatBiTree();
}
return T;
}
//前序遍历:根左右
void PreOrder(BiNode* T)
{
if(T==NULL) return;
else{
cout<<T->data;
PreOrder(T->lchild);
PreOrder(T->rchild);
}
}
//中序遍历:左根右
void InOrder(BiTree T)
{
if(T==NULL) return ;
else
{
InOrder(T->lchild);
cout<<T->data;
InOrder(T->rchild);
}
}
//后序遍历:左右根
void PostOrder(BiTree T)
{
if(T==NULL) return ;
else{
PostOrder(T->lchild);
PostOrder(T->rchild);
cout<<T->data;
}
}
int main()
{
cout<<"请按要求输入一棵树:";
BiTree T=CreatBiTree();
cout<<"该树的前序遍历输出为:"<<endl;
PreOrder(T);
cout<<endl;
cout<<"该树的中序遍历输出为:"<<endl;
InOrder(T);
cout<<endl;
cout<<"该树的后序遍历输出为:"<<endl;
PostOrder(T);
return 0;
}
二叉树的建立及遍历
最新推荐文章于 2022-05-24 21:21:18 发布