二叉树建立,先序中序后序遍历,后序不对是为什么呀?

#include
using namespace std;
typedef struct BiTNode
{
char data;
struct BiTNode *lchild, *rchild;
}BiTNode, *BiTree;

int CreateBiTree(BiTree &T)
{
char n;
cin >> n;
if (n == '#') T = NULL;
else
{
if (!(T = new BiTNode))
return false;
else{
T->data = n;
CreateBiTree(T->lchild);
CreateBiTree(T->rchild);
}
}
return true;
}//CreatBiTree

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<<' ';//访问根节点
}
}//后序遍历算法

void main()
{
BiTree T;
CreateBiTree(T);
cout << "先序遍历";
PreOrderTraverse(T);
cout << endl;
cout << "中序遍历";
InOrderTraverse(T);
cout << endl;
cout << "后序遍历";
PostOrderTraverse(T);
cout << endl;
}

查看全部
weixin_43493512
不抬头的小猪
2018/11/17 05:15
  • 递归
  • 二叉树
  • 遍历
  • 点赞
  • 收藏
  • 回答
    私信
满意答案
查看全部

1个回复