后续遍历=左子树,右子树,根,中序遍历=左子树,根,右子树
已知二叉树后序遍历序列是DBCEFGHA,中序遍历序列EDCBAHFG,它的前序遍历的序列是?
由后序遍历序列是DBCEFGHA,可以看出整棵树的根节点是A,再看中序遍历序列EDCBAHFG
A是根节点,左子树由A左边的元素EDCB构成,右子树由A右边的元素HFG构成
也就是
a
/—-\
EDCB–HFG
看左子树有4个元素EDCB
后序遍历序列是DBCE
最后访问E
可以确定A下边连接的是E
根据中序遍历序列EDCB
最先访问E
由于中序遍历E前面没有元素
可以确定E左子树为空
即下面的样子
A
/\
E
\
DBC
也就是还剩下DBC的顺序没理好
后序遍历序列是DBC
最后访问C
则C为根节点
连接E
中序遍历序列DCB
C前边有D
后边有B
哪么可以确定DCB这棵树为
C
/\
D B
哪么整棵树的左子树就确定了
为
E
\
C
/\
D B
同理
右子树应为
H
\
G
/
F
二叉树:
A
/ \
E H
\ \
C G
/ \ /
D B F