#include<iostream>
using namespace std;
typedef struct BiTreeNode{
char data;
BiTreeNode *lChild;
BiTreeNode *rChild;
}BiTreeNode;
//递归建立二叉树
void InitialBiTree(BiTreeNode *&node)
{
char data;
cout<<"请输入数据,输入#结束"<<endl;
cin>>data;
if(data!='#')
{
node=(BiTreeNode*)malloc(sizeof(BiTreeNode));
if(node==NULL)return;
node->data=data;
InitialBiTree(node->lChild);
InitialBiTree(node->rChild);
}
else
{
node=NULL;
}
}
//先序遍历
void TransFirstBiTree(BiTreeNode *&root)//注意使用*&root,^-^搞得有点郁闷反正就是这样root才可以保住
{
if(root==NULL)return;
else
{
cout<<root->data<<" ";
TransFirstBiTree(root->lChild);
TransFirstBiTree(root->rChild);
}
}
//后序遍历
void TransLastBiTree(BiTreeNode *&root)
{
if(root==NULL)return;
else
{
TransLastBiTree(root->lChild);
TransLastBiTree(root->rChild);
cout<<root->data<<" ";
}
}
//中序遍历
void TransMiddleBiTree(BiTreeNode *&root)
{
if(root==NULL)return;
else
{
TransMiddleBiTree(root->lChild);
cout<<root->data<<" ";
TransMiddleBiTree(root->rChild);
}
}
int main()
{
BiTreeNode *root=NULL;
InitialBiTree(root);
cout<<"先序遍历\n";
TransFirstBiTree(root);
cout<<"\n";
cout<<"中序遍历\n";
TransMiddleBiTree(root);
cout<<"\n";
cout<<"后序遍历\n";
TransLastBiTree(root);
cout<<"\n";
return 0;
}
二叉树的递归初始化,以及先序,中序,后序遍历
最新推荐文章于 2022-04-26 19:31:27 发布
本文介绍了一种通过递归方式创建二叉树的方法,并提供了先序、中序和后序遍历的实现代码。读者可以学习如何用C++来实现这些基本的数据结构操作。
9539

被折叠的 条评论
为什么被折叠?



