已知二叉树的中序序列和后序序列,怎么求前序序列
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了已知二叉树的中序序列和后序序列,怎么求前序序列相关的知识,希望对你有一定的参考价值。
参考技术A 1、确定树的根。树根是当前树中所有元素在后序遍历中最后出现的元素。2、求解树的子树。找出根节点在中序遍历中的位置,根左边的所有元素就是左子树,根右边的所有元素就是右子树。若根节点左边或右边为空,则该方向子树为空;若根节点左边和右边都为空,则根节点已经为叶子节点。
3、递归求解树。将左子树和右子树分别看成一棵二叉树,重复1、2、3步,直到所有的节点完成定位。
举例说明:根据已知求解二叉树
中序序列 HLDBEKAFCG
后序序列 LHDKEBFGCA
1、在后序序列LHDKEBFGCA中最后出现的元素为A,HLDBEK|A|FCG
2、在后序序列LHDKEB中最后出现的元素为B,HLD|B|EK|A|FCG
3、在后序序列LHD中最后出现的元素为D,HL|D|B|EK|A|FCG
4、在后序序列LH中最后出现的元素为H,H|L|D|B|EK|A|FCG
5、在后序序列KE中最后出现的元素为E,H|L|D|B|E|K|A|FCG
5、在后序序列FGC中最后出现的元素为C,H|L|D|B|E|K|A|F|C|G
6、所有元素都已经定位,二叉树求解完成,如下
A
/ \
B C
/ \ / \
D E F G
/ \
H K
\
L
树的操作
- 题意:根据中序序列和后序序列求前序序列
- 根据后序序列的最后元素将中序序列分为左右子树,然后递归处理。
- 百练 由中根序列和后根序列重建二叉树 AC代码
以上是关于已知二叉树的中序序列和后序序列,怎么求前序序列的主要内容,如果未能解决你的问题,请参考以下文章
已知二叉树的先序序列和中序序列怎么求后序序列?不是基于C++的,要在TC环境下能运行的,各位能人帮帮忙吧