菜鸡
二叉树的创建和三种遍历方式
气哭在厕所
好弱呀
#include<iostream>
#include<cstdio>
#include<cstdlib>
using namespace std;
struct tree//定义一个二叉树的结构体
{
int data;
tree *lchild;
tree *rchild;
};
void build_tree(tree *&t)//创建二叉树就是递归法
{
int k;
cin>>k;
if(k==0)//输入数据为0是结束输入
{
t=NULL;
return ;
}
else
{
t=new tree();//令t指向一个区域块,这个区域块是tree结构的
t->data=k;
build_tree(t->lchild);//先进行lchild的数据输入
build_tree(t->rchild);
}
}
void xin_print(tree *t)//先序遍历递归
{
if(t)
{
cout<<t->data;
xin_print(t->lchild);
xin_print(t->rchild);
}
}
void zhong_print(tree *t)//中序遍历
{
if(t)
{
zhong_print(t->lchild);
cout<<t->data;
zhong_print(t->rchild);
}
}
void hou_print(tree *t)//后序遍历
{
if(t)
{
hou_print(t->lchild);
hou_print(t->rchild);
cout<<t->data;
}
}
int main()
{
tree *t;
build_tree(t);
xin_print(t);
cout<<endl;
zhong_print(t);
cout<<endl;
hong_print(t);
cout<<endl;
}