使用递归法实现树的前,中,后序遍历
创建一个树的结构体
using namespace std;
typedef struct node{
char data;
struct node *lchild;
struct node *rchild;
}BTnode;
创建树的函数,如果遇到#则代表无输入
void CreateBtree(BTnode *&T){
char data;
cin>>data;
T=new BTnode;
if(data=='#'){
T=NULL;
return ;
}
T->lchild=NULL;
T->rchild=NULL;
T->data=data;
CreateBtree(T->lchild);
CreateBtree(T->rchild);
}
前序遍历
void PreOrder(BTnode *&T){
if(T){
cout<<T->data<<" ";
PreOrder(T->lchild);
PreOrder(T->rchild);
}
}
中序遍历
void InOrder(BTnode *&T){
if(T){
InOrder(T->lchild);
cout<<T->data<<" ";
InOrder(T->rchild);
}
}
后序遍历
void PostOrder(BTnode *&T){
if(T){
PostOrder(T->lchild);
PostOrder(T->rchild);
cout<<T->data<<" ";
}
}
如图输出:


浙公网安备 33010602011771号