题目大意:
二叉树,分别给出了前序遍历(根,左子树,右子树)与中序遍历(左子树,根,右子树),要求输出后序遍历(左子树,右子树,根)。
思路:
将所有节点全部看为根来做,先利用前、中序遍历还原二叉树原图,然后输出后序遍历。
代码:
#include<iostream>
#include<string>
using
struct
{
};
Tree
{
}
void
{
}
int
{
}
-------------------------------------------分割线-------------------------------------------------
下面这段代码仅方便理解该题使用,代码有局限性(CreateBiTree函数),自己看看就懂。
输入的是二叉树原图,输出分别为前、中、后序遍历。
注意:输入N个字母后,继续输入N+1个'&'再按回车。
代码:
#include<stdio.h>
#include<malloc.h>
typedef
{
}BiTNode,*BiTree;
void
{
}
void
{
}
void
{
}
void
{
}
void
{BiTNode*bt;
printf("请输入一个二叉树:\n");
CreateBiTree(&bt);
printf("请打印出先序遍历的结果是:\n");
PreOrder(bt);
printf("\n");
printf("请打印出中序遍历的结果是:\n");
InOrder(bt);
printf("\n");
printf("请打印出后序遍历的结果是:\n");
PostOrder(bt);
printf("\n");
}
二叉树遍历百度百科传送:http://baike.baidu.com/view/549587.htm