若某二叉树的前序遍历访问顺序是abdgcefh,中序遍历访问顺序是dgbaechf,则其后续遍历的结点访问顺序是?

来源:百度知道 编辑:UC知道 时间:2024/06/07 18:09:59
若某二叉树的前序遍历访问顺序是abdgcefh,中序遍历访问顺序是dgbaechf,则其后续遍历的结点访问顺序是?

答案 gdbehfca

我的思路是这样的 根据前序遍历,得a为根结点,所以中序遍历里面a的左边部分dgb为左子树,右边的为右子树。可是后续遍历为什么会是gdbehfca?中序遍历中dgb为左子树,说明d在g左边,b在g右边,左右根的话,应该是dbg啊,貌似条件中前序遍历和后续遍历中左子树就矛盾了。还有后面的右子树也右点弄不懂怎么来的。请帮忙解释下。

嗯,你第一步的划分是正确的

a为根,dgb为左子树,echf为右子树

接下来看左子树的前序遍历为bdg

b首先被访问

可以知道b为左子树的根,与a相连

再看左子树的中序遍历dgb

d和g都在b之前就被访问

所以b和g应该在b的左子树上

形状如下

---a

--/

--b

-/

dg

而dg的确定再根据前序遍历

d先被访问

则d为根

再看中序遍历也是d先被访问

可以确定g为d的右子树

左边就可以确定出来了

如果上面看懂了

右边就很简单,一样的道理

前序遍历cefh

确定c为右子树的根

再看中序遍历echf

e为c的左子树,hf为c的右子树

hf的确定在看前序遍历f先被访问

f为根

中序遍历h先被访问

h为f的左子树

整棵树就出来了

如下图

在做后序就是小菜一碟了

已知二叉树的先序遍历顺序和后序遍历顺序,能否知道其中序遍历顺序? 完全二叉树的顺序存储的先序遍历 已知二叉树后序遍历序列是DABEC 中序遍历列是 DEBAC ,它的前序遍历序列是: 已知二叉树后序遍历序列是dabec,中序遍历序列debac,它的前序遍历的序列是 已知二叉树的后序遍历序列dabec,中序遍历序列是debac,它的前序遍历序列是什么 求教由二叉树的前序遍历序列建立二叉树的非递归算法 二叉树的遍历 二叉树,前序遍历adbgcefh,中序遍历dgbaechf,求后序遍历?要有解答详细过程 前序遍历的顺序是怎么样的? 对某二叉树进行前序遍历的结果为ABDEFC,中序遍历的结果为DBFEAC,则后序周游的结果为