当前位置: 首页 > news >正文

建筑网站知名度深圳 教育集团网站建设

建筑网站知名度,深圳 教育集团网站建设,网址简化在线生成,成都vr 网站开发通过序列构造二叉树 给出以下三个二叉树遍历的序列: (1) 前序: 1 2 3 4 5 6 8 7 9 10 11 12 13 15 14 (2) 中序: 3 4 8 6 7 5 2 1 10 9 11 15 13 14 12 (3) 后序: 8 7 6 5 4 3 2 10 15 14 13 12 11 9 1 前中序复原二叉树 所需序列 (1) 前序: 1 2 3 4 5 6 8 7 9 10 …

通过序列构造二叉树

给出以下三个二叉树遍历的序列:

(1) 前序: 1 2 3 4 5 6 8 7 9 10 11 12 13 15 14

(2) 中序: 3 4 8 6 7 5 2 1 10 9 11 15 13 14 12

(3) 后序: 8 7 6 5 4 3 2 10 15 14 13 12 11 9 1

前中序复原二叉树

所需序列

(1) 前序: 1 2 3 4 5 6 8 7 9 10 11 12 13 15 14

(2) 中序: 3 4 8 6 7 5 2 1 10 9 11 15 13 14 12

左子树复原

第一轮

通过前序: 前序第一个访问的是根节点,因此根节点就是1

通过中序:中序遍历的特点就是根节点的左子树的元素都在根节点的左侧,右子树的元素都在根节点的右侧,从中序遍历序列结合前序序列可知,中序序列1的左侧为左子树,1的右侧为右子树。从而前序通过中序划分可知,前序的左右子树。划分如下:

中序序列划分:        [3 4 8 6 7 5 2]  1  [ 10 9 11 15 13 14 12]

前序序列划分:           1 [2 3 4 5 6 8 7 ]   [9 10 11 12 13 15 14]

分析

如何知道两个括号从哪里分开?可参照中序的两个数组划分的。

前序中 7 之前的元素都在中序第一个数组中,9之后的所有元素都在第二个数组中,因此从7和9之间划分。

第一轮划分结果如下图 

image.png

第二轮

我们先看前序和中序的第一个数组
前序: 2 3 4 5 6 8 7

中序: 3 4 8 6 7 5 2

通过上面的结论可知:

        根节点为2(前序)

然后可划分为:

        前序: 2 [3 4 5 6 8 7 ]

        中序: [3 4 8 6 7 5 ] 2

第二轮划分结果如下图

image.png

第三轮

 对 3 4 5 6 8 7 继续划分:

前序: 3 [4 5 6 8 7]

中序: 3 [4 8 6 7 5] 

第三轮划分结果如下图

image.png

第四轮

对 4 5 6 8 7 进行划分:

前序:4 [5 6  8 7]

中序:4 [ 8 6 7 5 ]

 第四轮划分结果如下图

image.png

第五轮

对 5 6 8 7 划分:

前序:5 [6 8 7]

中序:[8 6 7] 5

第六轮 

对 6 8 7 划分

前序:6 [ 8 7 ]

中序: [8] 6 [7]

至此,便可知左子树的树结构了。

左子树的树结构效果如下: 

image.png

左子树的复原结果如下

image.png

右子树复原

第一轮

由第一轮可知如下序列

前序: 9 10 11 12 13 15 14

中序: 10 9 11 15 13 14 12

对其进行划分,结果如下

前序:9 [ 10 11 12 13 15 14]

中序:[10] 9 [11 15 13 14 12]

由结果可知,10 是 9 的左子树,11 15 13 14 12为还需划分的序列

 第二轮

将序列11 12 13 15 14进行划分:

前序:11 [12 13 15 14]

中序:11 [15 13 14 12]

第三轮 

将12 13 15 14进行划分:

前序:12[13 15 14]

中序: [15 13 14]12

第四轮

将 13 15 14进行划分:

前序:13 [ 15 14]

中序: [15] 13 [14]

最终由中序获得结果,15为13的左子树,14为13的右子树

左右子树复原结果如下 

image.png

中后序恢复二叉树

 通过中后序恢复二叉树与前中序唯一的不同就是:后续的最后一个是根节点,中序的处理和上述相同。所需序列如下:

(2) 中序: 3 4 8 6 7 5 2 1 10 9 11 15 13 14 12

(3) 后序: 8 7 6 5 4 3 2 10 15 14 13 12 11 9 1

左子树复原

第一轮

中序序列划分:[3 4 8 6 7 5 2] 1 [10 9 11 15 13 14 12]

后序序列划分:[8 7 6 5 4 3 2 ] [10 15 14 13 12 11 9 ]1

由于上述经过了上述分析,对划分结果有所了解了,因此此次划分就不画中间过程了

第二轮

对序列 8 7 6 5 4 3 2 进行划分

中序:[3 4 8 6 7 5 ] 2

后序:[8 7 6 5 4 3 ] 2

第三轮 

对序列 8 7 6 5 4 3 进行划分:

中序:3[4 8 6 7 5]

后序:[8 7 6 5 4] 3

第四轮

对序列8 7 6 5 4进行划分:

中序:4 [8 6 7 5]

后序:[8 7 6 5] 4

第五轮 

对序列8 7 6 5进行划分:

中序:[8 6 7 ] 5

后序:[8 7 6 ] 5

第六轮

对序列 8 7 6进行划分:

中序:[8] 6 [7]

后序:[8 7] 6

最终,由中序划分可知,8是6的左子树,7是6的右子树

左子树复原结果如下 

image.png

右子树复原

右子树复原所需要的序列:

中序:10 9 11 15 13 14 12

后序:10 15 14 13 12 11 9

第一轮

将序列10 15 14 13 12 11 9进行划分(一般选择能确定根节点的那个节点):

中序:[10] 9 [11 15 13 14 12]

后序:[10 15 14 13 12 11]  9

由此划分可知,10为9的左节点,11 15 13 14 12为9的右子树

第二轮 

 对序列15 14 13 12 11进行划分:

中序:11 [15 13 14 12]

后序:[15 14 13 12] 11

第三轮 

对序列15 14 13 12进行划分:

中序:[15 13 14] 12

后序:[15 14 13] 12

第四轮

对序列15 14 13 进行划分:

中序:[15] 13 [14]

后序:[15 14]13

从中序结果可知,15为13的左子树,14为13的右子树

左右子树复原结果如下 

image.png

由此可知,前中序和中后序恢复成 二叉树的过程有些不同,但是所需的步骤和结果都是一致的。

知道了序列是如何构造成二叉树之后,便可以将其使用代码实现了,代码实现在下次总结。 

http://www.yayakq.cn/news/63911/

相关文章:

  • 网站建设预期目标WordPress输出当前网址
  • 自适应网站优点缺点网站排名优化的技巧
  • 企业网站用什么技术做怎么制作网页并且发布到网上
  • 视频 收费 网站怎么做北京app网站建设价格
  • 新公司网站建设流程广州 网站建设 020
  • 品牌排行榜哪个网站更权威网站开发完整的解决方案
  • 给百度做网站的公司seo服务公司怎么收费
  • 网站开发费用无形资产北京代理记账公司电话
  • 为什么不能用来名字做网站名小学培训机构
  • wordpress 建站 教程写网页用什么语言
  • 小说网站采集可以做嘛网站制作需求
  • 建设部人才中心网站968深圳网站建设公司
  • 从网站下载壁纸做海报涉及企业宣传册制作
  • wordpress后台登陆太慢常见网站性能优化手段
  • 网站留住访客广州市建设网站
  • 做网站需要用什么技术wordpress主题使用帮助
  • 理财产品网站开发文档wordpress搭建个人店铺
  • html创建站点的步骤企业级网站开发平台
  • 网站搜索优化价格推广公司文案
  • 张家港建设局官方网站3000元网站建设三年
  • 怎么做样网站设计网站价格表
  • 临沧高端网站建设wordpress添加搜索栏
  • 在自己电脑上做网站想学程序员去哪里学
  • 北京网站推广排名服务网上商城网站建设报价
  • 贵州省建设厅官网网站工业和信息化部装备工业发展中心
  • 中小学网站建设探讨深圳住建局最新消息
  • 有没有什么网站专门帮人做问卷flash 做ppt的模板下载网站有哪些
  • 展示网站和营销网站的区别佛山科技网站建设
  • 南京电子商务网站建设wordpress 兼容php7
  • mui做wap网站wordpress在线课程主题