关于二叉树遍历的问题

 

关于二叉树遍历的问题
       -------知道其两个遍历序列,求其第三种遍历序列的问题。
题目:某二叉树的先序遍历各节点的顺序是:ABDHEICFJK,中序遍历各节点的顺序是:DHBEIACJFK。       求:该二叉树的后续遍历各节点的顺序?
 
解答:因为先序的首字母为A,所以此二叉树的树顶节点为A,又因为中序为:DHBEIACJFK。所以DHBEI这5个元素必是A的左子树,CJFK这4个元素必是A的右子树: 
 
 
 
 
 
 
再对左子树DHBEI进行判断。因为左子树DHBEI的先序为:BDHEI,中序为:DHBEI。所以此左子树的树顶为B,且DH为B的左子树,EI为B的右子树:
 
 
 
 
 
 


因为B的左子树DH的先序为:DH,中序也为:DH。所以:
 
 
 
 
 
 
 
 
 


因为B的右子树EI的先序为:EI,中序也为:EI。所以:
 
 
 
 
 
 
 
 


对于A的右子树CJFK的先序为:CFJK,中序为:CJFK。所以右子树CJFK的树顶为C,且JFK为C的右子树。所以:
 
 
 
 
 


因为FJK的先序为:FJK,中序为:JFK。所以J为F的左节点,K为F的右节点。所以:
 
 
 
 
 


所以:
 
 
 
 
 
 
 
 


所以,综上所得:
 
 
 
 
 
 
 
 
 
 
 
 
 
 


所以此二叉树的后序是:HDIEBJKFCA。
 
    总结:知道任意两个遍历序列,求第三种遍历序列的思想方法都一样。此方法运用了迭代的思想,逐层深入,化繁为简。特别对于考二级的同学尤为有用,还有另一帖讲述解决此类题的方法(连接地址如下):

http://student.csdn.net/space.php?uid=111110&do=blog&id=10754

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值