怎么根据二叉树的前序,中序,确定它的后序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么根据二叉树的前序,中序,确定它的后序相关的知识,希望对你有一定的参考价值。

怎么根据二叉树的前序,中序,确定它的后序
二叉树遍历分为三类:前序遍历,中序遍历和后序遍历。
前序遍历:先访问根节点,然后遍历左子树,最后遍历右子树;并且在遍历左,右子树时,仍需先访问根节点,然后遍历左子树,最后遍历右子树。
中序遍历:先遍历左子树,然后访问根节点,最后遍历右子树;并且在遍历左,右子树时,仍先历左子树,然后访问根节点,最后遍历右子树。
后序遍历:先遍历左子树,然后遍历右子树,最后访问根节点;并且在遍历左,右子树时,仍先历左子树,然后遍历右子树,最后访问根节点。
由中序和后序可以知道B,C,D,E是左子树,H,F,G是右子树,A是根节点。因为后序遍历最后访问的是根节点。在左子树中C是D和B的子节点,E是C的子节点,在右子树中H是G和F的子节点,
A是根节点。最后可以推出前序序列是:AECDBHGF
参考技术A 可以。但是只有前后求中就不行。用递归去算吧。二分。例如
前:abcdfe
中:badfce

a
/
\
b
c
/
\
d
e
\
f
这时,先拿到前序的a,a必定是这棵树的根,然后在中序中找到a,把a前a后的分为2部分,即b和dfce;然后按照1:4将前序剩余部分分开,得到b和cdfe;然后分别递归;因为是求后序,所以在两边递归完了再输出本子树的根。

以上是关于怎么根据二叉树的前序,中序,确定它的后序的主要内容,如果未能解决你的问题,请参考以下文章

[codevs1029]遍历问题

洛谷 P1229遍历问题

已知二叉树的前序遍历和中序遍历,如何得到它的后序遍历?

已知二叉树的前序遍历和中序遍历,如何得到它的后序遍历?

递归与递推遍历问题

已知二叉树的中序序列和后序序列,怎么求前序序列