您的位置:首页 > 其它

构建二叉树并实现递归遍历

2012-09-10 17:25 302 查看
二叉树的递归遍历相当简单,以下代码实现由先序ABDFEGHC,中序DFBGEHAC确定的二叉树,并实现递归的遍历,

执行程序时输入ABD#F##EG##H##C##


#include<iostream>
using namespace std;

typedef struct BinNode{
char data;
BinNode *lchild,*rchild;
}bin_tree,*tree;

void creat_tree(tree &t){
char ch;
cin>>ch;
if(!cin.eof()){
if(ch=='#')
t=NULL;
else{
t=new bin_tree;
if(!t)
exit(0);
t->data=ch;
creat_tree(t->lchild);
creat_tree(t->rchild);
}
}
}

void pre_order(tree &t){
if(t){
cout<<t->data<<"  ";
pre_order(t->lchild);
pre_order(t->rchild);
}
}

void mid_order(tree &t){
if(t){
mid_order(t->lchild);
cout<<t->data<<"  ";
mid_order(t->rchild);
}
}

void post_order(tree &t){
if(t){
post_order(t->lchild);
post_order(t->rchild);
cout<<t->data<<"  ";
}
}

void main(){
tree t;
cout<<"请输入二叉树节点:";
creat_tree(t);
cout<<"\n先序遍历序列为:";
pre_order(t);
cout<<"\n中序遍历序列为:";
mid_order(t);
cout<<"\n后序遍历序列为:";
post_order(t);
cout<<endl;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: