《数据结构》天勤和王道 第五章 树
《数据结构》天勤和王道 第五章 树
- 天勤部分
- 1. 树的基础知识
- 1.1 结点的度
- 1.2 树的度
- 1.3 叶子结点
- 1.4 双亲结点、孩子结点、祖先结点和子孙结点
- 1.5 兄弟结点和堂兄弟结点
- 1.6 高度和深度
- 1.7 存储结构
- 2. 二叉树的逻辑结构和存储结构
- 2.1 性质
- 2.2 叶子结点数=双分支结点数+1的灵活运用
- 2.3 m叉树的性质
- 王道部分
- 1. 树的定义和基本术语
- 2. 树的常考性质
- 3. 二叉树的定义和基本术语
- 3.1 满二叉树和完全二叉树
- 3.2 二叉排序树
- 3.3 平衡二叉树
- 4. 二叉树的性质
- 4.1 二叉树的常考性质
- 4.2 完全二叉树的常考性质
- 5. 二叉树的存储结构
- 5.1 顺序存储
- 5.2 链式存储
- 6. 二叉树的先中后序遍历
- 6.1 先序遍历的代码
- 6.2 中序遍历的代码
- 6.3 后序遍历的代码
- 6.4 遍历算术表达式树
- 7. 二叉树的层序遍历
- 8. 由遍历序列构造二叉树
- 8.1 不同二叉树的遍历序列
- 8.2 前序+中序遍历序列
- 8.3 后序+中序遍历序列
- 8.4 层序+中序遍历
- 9. 线索二叉树
- 9.1 线索二叉树的概念
- 9.1.1 中序线索二叉树
- 线索二叉树的存储结构
- 9.1.2 先序线索二叉树
- 9.1.3 后序线索二叉树
- 9.2 二叉树的线索化(代码实现)
- 9.2.1 中序线索化
- 9.2.2 先序线索化
- 9.2.3 后序线索化
- 9.3 线索二叉树找前驱/后继
- 9.3.1 中序线索二叉树找中序后继
- 9.3.2 中序线索二叉树找中序前驱
- 9.3.3 先序线索二叉树找先序后继
- 9.3.4 先序线索二叉树找先序前驱
- 9.3.5 后序线索二叉树找后序前驱
- 9.3.6 后序线索二叉树找后序后继
- 10. 树的存储结构
- 10.1 双亲表示法(顺序存储)
- 10.2 孩子表示法(顺序+链式存储)
- 10.3 孩子兄弟表示法(链式存储)
- 10.4 森林和二叉树的转换
- 11 树、森林的遍历
- 11.1 树的先根遍历
- 11.2 树的后根遍历
- 11.3 树的层次遍历
- 11.4 森林的先序遍历
- 11.5 森林的中序遍历
- 12. 哈夫曼树
- 12.1 带权路径
- 12.2 哈夫曼树的定义
- 12.3 哈夫曼树的构造
- 12.4 哈夫曼编码
- 13. 并查集(新增考点)
- 13.1 查和并的实现
- 13.2 并查集的存储结构
- 13.3 基本操作
- 13.4 代码实现
- 13.5 Union操作的优化
- 13.6 Find操作的优化(压缩路径)
天勤部分
1. 树的基础知识
树是一种递归定义的数据结构。递归特性:当前每一层都跟上一层有类似的结构,每一个子结构跟其父结构都类似。
1.1 结点的度
1.2 树的度
所有结点中最大的分支数就是树的度。
1.3 叶子结点
度为0的结点就是叶子结点。
1.4 双亲结点、孩子结点、祖先结点和子孙结点
1.5 兄弟结点和堂兄弟结点
1.6 高度和深度
1.7 存储结构
这部分直接看下面王道的“10. 树的存储结构”。
2. 二叉树的逻辑结构和存储结构
2.1 性质
2.2 叶子结点数=双分支结点数+1的灵活运用
当求一棵树中的空指针个数等时,我们可以先在每个结点上填充上空指针,使得每个结点的度都为2,然后就可以运用公式了。
2.3 m叉树的性质
王道部分
1. 树的定义和基本术语
2. 树的常考性质
3. 二叉树的定义和基本术语
3.1 满二叉树和完全二叉树
满二叉树是一种特殊的完全二叉树。
3.2 二叉排序树
3.3 平衡二叉树
4. 二叉树的性质
4.1 二叉树的常考性质
结点树=总度数+1;这的“1”表示的是根结点。
4.2 完全二叉树的常考性质
这里的 h-1<log2 (n+1)<=h,表示的是log2 (n+1)在 h-1 和 h 之间相差不到一的小数,由于是<=h,所以向上取整。
5. 二叉树的存储结构
5.1 顺序存储
5.2 链式存储
6. 二叉树的先中后序遍历
6.1 先序遍历的代码
6.2 中序遍历的代码
6.3 后序遍历的代码
6.4 遍历算术表达式树
7. 二叉树的层序遍历
8. 由遍历序列构造二叉树
8.1 不同二叉树的遍历序列
8.2 前序+中序遍历序列
举个例子:
8.3 后序+中序遍历序列
举个例子:
8.4 层序+中序遍历
举个例子:
再举个例子:
必须跟中序序列组合才能确定唯一的二叉树。
9. 线索二叉树
9.1 线索二叉树的概念
遍历二叉树是以一定的规则讲二叉树中的结点排列成一个线性序列,从而得到几种遍历序列,使得该序列中的每个结点(第一个和最后一个结点除外)都有一个直接前驱和直接后继。
这种是没有线索的时候,找遍历序列中的前驱和后继。
通过中序遍历,先访问D结点(visit(D)),然后继续执行下去。
9.1.1 中序线索二叉树
线索二叉树的存储结构
9.1.2 先序线索二叉树
9.1.3 后序线索二叉树
9.2 二叉树的线索化(代码实现)
9.2.1 中序线索化
9.2.2 先序线索化
9.2.3 后序线索化
9.3 线索二叉树找前驱/后继
9.3.1 中序线索二叉树找中序后继
9.3.2 中序线索二叉树找中序前驱
9.3.3 先序线索二叉树找先序后继
9.3.4 先序线索二叉树找先序前驱
9.3.5 后序线索二叉树找后序前驱
9.3.6 后序线索二叉树找后序后继
10. 树的存储结构
10.1 双亲表示法(顺序存储)
10.2 孩子表示法(顺序+链式存储)
10.3 孩子兄弟表示法(链式存储)
10.4 森林和二叉树的转换
11 树、森林的遍历
11.1 树的先根遍历
11.2 树的后根遍历
11.3 树的层次遍历
11.4 森林的先序遍历
11.5 森林的中序遍历
如果考试要是考到关于遍历森林的代码的话,我们可以先转换成上述这种二叉树(即森林用二叉树来存储),然后利用我们熟悉的二叉树代码继续解决。
12. 哈夫曼树
12.1 带权路径
12.2 哈夫曼树的定义
只要是最优二叉树就是哈夫曼树。
12.3 哈夫曼树的构造
12.4 哈夫曼编码
13. 并查集(新增考点)
并查集的逻辑结构是一个集合。
这个时候我们可以将集合之间的关系类似地看成是森林,而每个集合中的元素也可以组成一棵树。
13.1 查和并的实现
13.2 并查集的存储结构
可以用双亲表示法来存储并查集。
13.3 基本操作
13.4 代码实现
13.5 Union操作的优化
优化思路:在每次Union操作构建树的时候,尽量不要让树“长高”。
①用根结点的绝对值表示树的结点总数。
②Union操作,让小树合并到大树。
13.6 Find操作的优化(压缩路径)
每次Union时,都需要从指定元素出发找到该元素的根结点,也就是需要乘上Find函数的时间复杂度。
《数据结构》天勤和王道 第五章 树相关推荐
- C语言数据结构【手抄版】第五章 树和二叉树【上篇】
注意:文中彩色代码均在Visual Studio 2022编译器中编写,本文为C语言数据结构手抄版,文中有部分改动,非原创. 目录 5.1.树的基本概念和术语 1.树的定义 2.树的表示法 3.基本术 ...
- C语言数据结构【手抄版】第五章 树和二叉树【尾篇】二叉树C实现
封装二叉树算法 字符串工具,规避了了数字类型字符串比较不准确的BUG,string.h: #pragma once #ifdef __cplusplus extern "C" { ...
- 《数据结构》天勤和王道 第四章 串
<数据结构>天勤和王道 第四章 串 天勤部分 1. 串的基础 1.1 逻辑结构 1.2 存储结构 1.3 赋值操作 1.4 串比较 1.5 串连接 1.6 求子串 1.7 清空串 2. K ...
- 【数据结构总结】第五章 树和二叉树(非线性结构)
第五章 树和二叉树(非线性结构) 提示:本文主要是以思维导图的形式概括数据结构第一章的精华内容,基本不会用到文字性的内容,目的是为了给大家梳理每个重要的知识点的相关概念,方便大家在复盘的时候快速阅读和 ...
- 数据结构(C语言)第二版 第五章课后答案
数据结构(C语言)第二版 第五章课后答案 1~5 A D D C A 6~10 C C B D C 11~15 B C A C A 1.选择题 (1)把一棵树转换为二叉树后,这棵二叉树的形态是(A) ...
- 第五章 树16 AcWing 1628. 判断红黑树
第五章 树16 AcWing 1628. 判断红黑树 原题链接 AcWing 1628. 判断红黑树 算法标签 平衡树 思路 代码 #pragma GCC optimize(2) #pragma GC ...
- 【Java数据结构与算法】第十五章 B树、B+树和B*树
第十五章 B树.B+树和B*树 文章目录 第十五章 B树.B+树和B*树 一.B树 1.引入 2.介绍 二.B+树 1.引入 2.介绍 三.B*树 1.介绍 一.B树 1.引入 为什么数据库索引要使用 ...
- 数据结构(C语言第2版) 课后习题答案之第五章 树和二叉树
目录 第5章 树和二叉树 一.选择题 二.应用题 (1)试找出满足下列条件的二叉树 (2)设一棵二叉树的先序序列: A B D F C E G H ,中序序列: B F D A G E H C (3 ...
- 408数据结构考研笔记——第五章树与二叉树(重点)
目录 一.基本概念 1.定义 2.基本术语 3.性质(重点!!) 二.二叉树 1.定义 2.特殊二叉树 1.满二叉树 2.完全二叉树 3.二叉排序树 4.平衡二叉树 3.性质 4.存储结构 1.顺序存 ...
- (王道408考研数据结构)第五章树-第三节1:二叉树遍历(先序、中序和后序)
文章目录 一:二叉树遍历概述 二:二叉树深度优先遍历 (1)先序遍历-根左右(NLR) (2)中序遍历-左根右(LNR) (3)后序遍历-左右根(LRN) 总结:三种遍历方式动图演示 三:二叉树的层序 ...
最新文章
- 转发和重定向的区别?
- python数据挖掘Hello World
- vectorvectorint 二维容器编程
- 首个进入Gartner领导者象限的中国数据库要开发布会了!
- 管理与决策这属于计算机在什么方面的应用,提供参考11级<计算机应用基础>...
- html(7)盒子模型
- 基于c语言实现bp算法,基于BP网络的自学习算法和C语言实现
- tomcat 域名配置、中文域名、别名配置
- Linux之执行一个可执行文件
- Webservice接口调用工具类
- Android基础教程(奋斗之小鸟)_PDF 电子书
- 如果一个n位正整数等于它的n个数字的n次方和,则称该数为n位自方幂数。编程计算并输出所有的n的所有情况。
- Stata-DEA:数据包络分析一文读懂
- C/C++程序员工作面试的秘密
- 各大网站的主题色RGB值,做icon专用
- EL表达式中比较String类型数字的大小
- python按字典顺序输出单词频率_用python编写一段程序,输入若干单词,按照单词长短进行排序,并统计所有单词中每个字母(a-z)出现的次数...
- Python:import与from import的理解
- 关于路由器的配置参数
- 如何求水平渐近线(例题讲解)
热门文章
- Face3D学习笔记(5)3DMM示例源码解析【中下】从二维图片的特征点重建三维模型——黄金标准算法
- 如何测试自己适合什么大学专业
- ae 的动画导出为html,Bodymovin v5.5.5 AE脚本可以导出json格式在Web动画制作工具
- GJB 8114-2013中不恰当的编码规则解析
- 伍德里奇计量经济学第六版第七章计算机答案,伍德里奇计量经济学第六版答案Appendix-E...
- 《算法》第四版官网库及数据文件
- IceGrid应用 配置手册
- 分享一下好用的本地格式化软件hijson,这个居然还有人要收费才能下载,真是醉了
- FPGA、AD9371、AD9009、RF SOC介绍
- 台式计算机怎么安装无线信号接收器,电脑wifi接收器怎么用