原文链接:https://blog.csdn.net/qq_37043100/article/details/80171535
#include <iostream>
using namespace std;
typedef struct BiTNode
{
char data; //节点数据
struct BiTNode *lchild, *rchild; //左右孩子指针
}BiTNode, *BiTree;
void CreatBiTree(BiTree &T)
{
char temp;
cin >> temp;
if (temp == '#')
{
T = NULL;
}
else
{
T = new BiTNode;
T->data = temp;
CreatBiTree(T->lchild);
CreatBiTree(T->rchild);
}
}
void PreOrderTraverse(BiTree T)
{
if (T == NULL)
{
return;
}
cout << T->data;
PreOrderTraverse(T->lchild);
PreOrderTraverse(T->rchild);
}
void InOrderTraverse(BiTree T)
{
if (T == NULL)
{
return;
}
InOrderTraverse(T->lchild);
cout << T->data;
InOrderTraverse(T->rchild);
}
void PostOrderTraverse(BiTree T)
{
if (T == NULL)
{
return;
}
PostOrderTraverse(T->lchild);
PostOrderTraverse(T->rchild);
cout << T->data;
}
int main()
{
BiTree T;
CreatBiTree(T);
cout << "前序排序:";
PreOrderTraverse(T); //前序排序
cout << endl;
cout << "中序排序:";
InOrderTraverse(T); //中序排序
cout << endl;
cout << "后序排序:";
PostOrderTraverse(T); //后序排序
cout << endl;
}