1.以二叉链表表示二叉树,建立一棵二叉树;
2.输出二叉树的中序遍历结果;
3.输出二叉树的前序遍历结果;
4.输出二叉树的后序遍历结果;
5.输出二叉树的层序遍历结果。
#include <iostream>
using namespace std;
typedef struct BiTNode
{
char data;
struct BiTNode *lchild, *rchild;
}BiTNode,*BiTree;
void CreateBiTree(BiTree &T)
{
char x;
cin>>x;
if ('#' == x)
T = NULL;
else
{
T = new BiTNode;
T->data = x;
CreateBiTree(T->lchild);
CreateBiTree(T->rchild);
}
}
void PreOrderTraverse(BiTree T)
{
if (!T)
return;
else
{
cout << T->data << " ";
PreOrderTraverse(T->lchild);
PreOrderTraverse(T->rchild);
}
}
void InOrderTraverse(BiTree T)
{
if (!T)
return;
else
{
PreOrderTraverse(T->lchild);
cout << T->data << " ";
PreOrderTraverse(T->rchild);
}
}
void PostOrderTraverse(BiTree T)
{
if (!T)
return;
else
{
PreOrderTraverse(T->lchild);
PreOrderTraverse(T->rchild);
cout << T->data << " ";
}
}
int main()
{
BiTree T;
cout << "请输入二叉树元素:\n";
CreateBiTree(T);
cout << "先序遍历:\n";
PreOrderTraverse(T);
cout << endl;
cout << "中序遍历:\n";
InOrderTraverse(T);
cout << endl;
cout << "后序遍历:\n";
PostOrderTraverse(T);
return 0;
}
来源:https://blog.csdn.net/weixin_43613299/article/details/102754473