您的位置:首页 > 其它

二叉树的建立与遍历【模板】

2017-08-07 14:57 337 查看
二叉树的先序递归建立

先序、中序、后序遍历

代码:

#include<iostream>
using namespace std;

typedef struct node
{
struct node *lchild;
struct node *rchild;
char data;
}BiTreeNode, *BiTree;
void createBiTree(BiTree &T)
{
char c;
cin >> c;
if('#' == c)
T = NULL;
else
{
T = new BiTreeNode;
T->data=c;
createBiTree(T->lchild);
createBiTree(T->rchild);
}
}

//前序遍历二叉树并打印出来
void preorder(BiTree T)
{
if(T)
{
cout<<T->data<<" ";
preorder(T->lchild);
preorder(T->rchild);
}
}
//中序遍历二叉树并打印出来
void midorder(BiTree T)
{
if(T)
{
midorder(T->lchild);
cout<<T->data<<" ";
midorder(T->rchild);
}
}
//后续遍历二叉树并打印出来
void postorder(BiTree T)
{
if(T)
{
postorder(T->lchild);
postorder(T->rchild);
cout<<T->data<<" ";
}
}
int main()
{
BiTree T;
createBiTree(T);
cout<<"二叉树创建完成!"<<endl;
cout<<"前序遍历二叉树:"<<endl;
preorder(T);
cout<<endl;
cout<<"中序遍历二叉树:"<<endl;
midorder(T);
cout<<endl;
cout<<"后序遍历二叉树:"<<endl;
postorder(T);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息