题目:某二叉树的先序遍历各节点的顺序是:ABDHEICFJK,中序遍历各节点的顺序是:DHBEIACJFK。 求:该二叉树的后续遍历各节点的顺序?
解答:因为先序的首字母为A,所以此二叉树的树顶节点为A,又因为中序为:DHBEIACJFK。所以DHBEI这5个元素必是A的左子树,CJFK这4个元素必是A的右子树:
A |
再对左子树DHBEI进行判断。因为左子树DHBEI的先序为:BDHEI,中序为:DHBEI。所以此左子树的树顶为B,且DH为B的左子树,EI为B的右子树:
B |
A |
因为B的左子树DH的先序为:DH,中序也为:DH。所以:
A |
B |
D |
H
|
因为B的右子树EI的先序为:EI,中序也为:EI。所以:
A |
B |
D |
H
|
E |
I |
对于A的右子树CJFK的先序为:CFJK,中序为:CJFK。所以右子树CJFK的树顶为C,且JFK为C的右子树。所以:
A |
B |
D |
H
|
E |
I |
C |
因为FJK的先序为:FJK,中序为:JFK。所以J为F的左节点,K为F的右节点。所以:
A |
B |
D |
H
|
E |
I |
C |
F |
所以:
A |
B |
D |
H
|
E |
I |
C |
F |
K |
J |
所以,综上所得:
|
此二叉树的后序是:HDIEBJKFCA。
总结:知道任意两个遍历序列,求第三种遍历序列的思想方法都一样。此方法运用了迭代的思想,逐层深入,化繁为简。