查看“树的遍历”的源代码
←
树的遍历
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看和复制此页面的源代码。
https://www.bilibili.com/video/BV1hg411V7Bm?p=60 === 1)二叉树的遍历方式 === 前序/先序遍历:先遍历根结点,然后遍历左子树,最后遍历右子树。根、左、右 中序遍历:先遍历左子树,然后遍历根结点,最后遍历右子树。 左、根、右 后序遍历:先遍历左子树,然后遍历右子树,最后遍历根结点。左、右、根 层序遍历:从上往下逐层遍历。上到下、左到右 [[文件:二叉树的遍历方式.png|无|缩略图|348x348像素]] 图中前序遍历结果是? 1、2、4、5、7、8、3、6 图中中序遍历结果是? 4、2、7、8、5、1、3、6 图中后序遍历结果是? 4、8、7、5、2、6、3、1 图中层序遍历结果是? 1、2、3、4、5、6、7、8 === 2)由前序、中序遍历序列构造二叉树 === 由前序序列为ABHFDECG;中序序列为HBEDFAGC构造二叉树; [[文件:构造二叉树.png|无|缩略图|423x423像素]] 解题思路: 根据前序序列的规则(先遍历根结点,然后遍历左子树,再遍历右子树)得到子树的根结点,再根据中序序列中根结点出现的位置把序列分为左子树跟右子树两部分。 依据前序序列ABHFDECG先遍历根结点,然后遍历左子树,再遍历右子树,得知A是根节点,又有中序序列HBEDFAGC先遍历左子树,然后遍历根结点,最后遍历右子树,得知H、B、E、D、F在A为根节点的树的左子树中,G、C在A为根节点的树的右子树中 {| class="wikitable" ! colspan="2" |A |- |H、B、E、D、F |GC |} 其中左子树中,前序序列为BHFDE,那么B是根结点,中序序列HBEDF,以B为根结点拆成H和E、D、F一个左子树,一个右子树 {| class="wikitable" ! colspan="2" |B |- |H |E、D、F |} 以B为根结点的右子树中,前序序列FDE,中序序列EDF,那么F是根结点,E、D都在以F为根结点的左子树中 {| class="wikitable" ! colspan="2" |F |- |E、D | |} 在以F为根结点的左子树中,前序序列是DE,中序序列是ED,那么D是根结点,E是左叶子结点 {| class="wikitable" ! colspan="2" |D |- |E | |} 在以A为根结点的右子树中,前序序列是CG,中序序列是GC,那么C是根结点,G在以C为根结点的树中的左子树中 {| class="wikitable" ! colspan="2" |C |- |G | |} 以上子树合并起来就是 {| class="wikitable" ! colspan="6" |A |- ! colspan="4" |B ! colspan="2" |C |- !H ! colspan="3" |F !G ! |- ! ! colspan="2" |D ! ! ! |- ! !E ! ! ! ! |}
返回至
树的遍历
。
导航菜单
个人工具
登录
名字空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
导航
首页
Spring Boot 2 零基础入门
Spring Cloud
Spring Boot
设计模式之禅
VUE
Vuex
Maven
算法
技能树
Wireshark
IntelliJ IDEA
ElasticSearch
VirtualBox
软考
正则表达式
程序员精讲
软件设计师精讲
初级程序员 历年真题
C
SQL
Java
FFmpeg
Redis
Kafka
MySQL
Spring
Docker
JMeter
Apache
Linux
Windows
Git
ZooKeeper
设计模式
Python
MyBatis
软件
数学
PHP
IntelliJ IDEA
CS基础知识
网络
项目
未分类
MediaWiki
镜像
问题
健身
国债
英语
烹饪
常见术语
MediaWiki帮助
工具
链入页面
相关更改
特殊页面
页面信息