知道其两个遍历序列,求其第三种遍历序列的问题。

来源:互联网 发布:有哪些耐玩的网游 知乎 编辑:程序博客网 时间:2024/05/18 12:30

     

  题目:某二叉树的先序遍历各节点的顺序是:ABDHEICFJK,中序遍历各节点的顺序是:DHBEIACJFK       求:该二叉树的后续遍历各节点的顺序?

 

解答:因为先序的首字母为A,所以此二叉树的树顶节点为A,又因为中序为:DHBEIACJFK。所以DHBEI5个元素必是A的左子树,CJFK4个元素必是A的右子树: 

 

A

    再对左子树DHBEI进行判断。因为左子树DHBEI的先序为:BDHEI,中序为:DHBEI。所以此左子树的树顶为B,且DHB的左子树,EIB的右子树:

 

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,且JFKC的右子树。所以:

 

A

B

D

 H

 

E

I

C

    因为FJK的先序为:FJK,中序为:JFK。所以JF的左节点,KF的右节点。所以:

 

A

B

D

 H

 

E

I

C

F

所以:

 

A

B

D

 H

 

E

I

C

F

K

J

所以,综上所得:

 

此二叉树的后序是:HDIEBJKFCA

     总结:知道任意两个遍历序列,求第三种遍历序列的思想方法都一样。此方法运用了迭代的思想,逐层深入,化繁为简。

 
原创粉丝点击