通过已知的后序遍历和中序遍历,我们可以构造出这棵二叉树并求出它的先序遍历。
已知信息:
- 后序遍历:DABEC
- 中序遍历:DEBAC
步骤:
-
在后序遍历中,最后一个节点是根节点,因此根节点为
C
。 -
在中序遍历
DEBAC
中,C
将序列分成左右子树:左子树为DEBA
,右子树为空。 -
对左子树
DEBA
进行相同的分析:- 后序遍历的左子树部分是
DABE
,其中E
是根节点。 - 在
DEBA
中,E
将序列分成左右子树:左子树为D
,右子树为BA
。
- 后序遍历的左子树部分是
-
对右子树
BA
进行相同的分析:- 后序遍历的右子树部分是
BA
,其中A
是根节点。 - 在
BA
中,A
将序列分成左右子树:左子树为B
,右子树为空。
- 后序遍历的右子树部分是
-
现在我们有了整个树的结构:
C / E / \ D A / B
-
最后,按先序遍历(根-左-右)的顺序得到:
CEDAB