【C++】二叉树的先序遍历、中序遍历、后序遍历
发布时间:2024年01月14日
#include<iostream>
using namespace std;
typedef char TElemType;
typedef struct BiTNode
{
TElemType data;
struct BiTNode* lchild, * rchild;
}BiTNode,*BiTree;
void CreatBiTree(BiTree& T)//创建二叉树
{
char ch;
cin >> ch;
if (ch == '#')T = NULL;
else
{
T = new BiTNode;
T->data = ch;
CreatBiTree(T->lchild);
CreatBiTree(T->rchild);
}
}
void PreOrderTraverse(BiTree T)//先序遍历
{
if (T)
{
cout << T->data;
PreOrderTraverse(T->lchild);
PreOrderTraverse(T->rchild);
}
}
void InOrderTraverse(BiTree T)//中序遍历
{
if (T)
{
InOrderTraverse(T->lchild);
cout << T->data ;
InOrderTraverse(T->rchild);
}
}
void PostOrderTraverse(BiTree T)//后序遍历
{
if (T)
{
PostOrderTraverse(T->lchild);
PostOrderTraverse(T->rchild);
cout << T->data;
}
}
int main1()
{
BiTree T;
cout << "请输入:"<<endl;
CreatBiTree( T);
cout << endl;
cout << "先序遍历的结果为:" ;
PreOrderTraverse( T);
cout << endl;
cout << "中序遍历的结果为:" ;
InOrderTraverse(T);
cout << endl;
cout << "后序遍历的结果为:" ;
PostOrderTraverse(T);
return 0;
}
文章来源:https://blog.csdn.net/Ll801003/article/details/135564216
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:chenni525@qq.com进行投诉反馈,一经查实,立即删除!