打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
由二叉树的先序序列和中序序列画出二叉树
[ 转自 ]http://blog.163.com/zhe_wang_2009/blog/static/17228212120114482457713/
今天数据结构的考试有这个题,做了好久,下来后,我好好地在网上查了一下,并结合我自己的理解,总结出来了一个比较好理解的方法。这个方法可以说做起这样的题又快又准。
(概括为一个口诀:先序放中间,中序分两边)
基本思想就是递归:
1.取出先序的第一个节点。(先序中的节点为根节点)
2.用第一个节点可以将中序分成左右子树,然后又取出先序的第二个节点
再次将左右子树再次划分,
3,当将中序全部划分为单个点时就结束。
例如:假设一颗二叉树的先序序列是:EBADCFHGIKJ。 中序序列为:ABCDEFGHIJK。请画出该二叉树。
生成的二叉树如下图所示:
问题扩展:
1,只有先序和中序 或 中序和后序可以确定一颗树。先序和后序确定不了一颗树。
2,如何根据中序和后序确定一颗树呢?
方法跟上面的由先序和中序确定一颗树的思想大同小异。
例如:中序:BEDAC  后序:   EDBCA
<---------找根的方向
先是A是根,故有根A,左子树为BED  右子树为C
然后是C为根,C的左右子树均为空。
然后是B为根,B的左子树为空,右子树为ED
然后是D为根,D的左子树为E,右子树为空。
然后是E为根,左右子树均为空。
根据上面几个步骤就可以将确定的树画出来。
中序序列和后序序列思想:
后序放中间,中序分两边
先找根节点,然后分别在先序序列或者后序序列中将该节点下左右子树节点分开,进一步找二级节点,依次循环分享:
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
树(二叉树)
C 基础知识点第十三天(算法)
二叉树的遍历
看懂二叉树的三种遍历
某二叉树的中序序列和后序序列正好相反,则该二叉树一定是
二叉树练习
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服