首页 > 其他 > 详细

如何由二叉树的先序和中序序列画出二叉树

时间:2014-06-11 13:09:03      阅读:801      评论:0      收藏:0      [点我收藏+]

  今天数据结构的考试有这个题,做了好久,下来后,我好好地在网上查了一下,并结合我自己的理解,总结出来了一个比较好理解的方法。这个方法可以说做起这样的题又快又准。
 (概括为一个口诀:先序放中间,中序分两边)
 
 基本思想就是递归:

1.取出先序的第一个节点。(先序中的节点为根节点)
2.用第一个节点可以将中序分成左右子树,然后又取出先序的第二个节点
   再次将左右子树再次划分,
3,当将中序全部划分为单个点时就结束。

例如:假设一颗二叉树的先序序列是:EBADCFHGIKJ。 中序序列为:ABCDEFGHIJK。请画出该二叉树



bubuko.com,布布扣

生成的二叉树如下图所示:
bubuko.com,布布扣
 


 问题扩展:
      1,只有先序和中序 或 中序和后序可以确定一颗树。先序和后序确定不了一颗树。
      2,如何根据中序和后序确定一颗树呢?
             方法跟上面的由先序和中序确定一颗树的思想大同小异。
             例如:中序:BEDAC  后序:   EDBCA
                                                              <---------找根的方向
                 先是A是根,故有根A,左子树为BED  右子树为C
                 然后是C为根,C的左右子树均为空。
                 然后是B为根,B的左子树为空,右子树为ED
                 然后是D为根,D的左子树为E,右子树为空。
                  然后是E为根,左右子树均为空。

            根据上面几个步骤就可以将确定的树画出来。

如何由二叉树的先序和中序序列画出二叉树,布布扣,bubuko.com

如何由二叉树的先序和中序序列画出二叉树

原文:http://www.cnblogs.com/ct0421/p/3772461.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!