目录
2.4 有序树:逻辑上看,树中结点的各子树从左至右是有次序的,
2.5 无序树:逻辑上看,树中结点的各子树从左至右是无次序的
前言
前一段时间一直在忙毕设,昨天终于弄好了,复习重新开始。
今天主要复习一下树的相关知识。
一、树
1 树的基本定义
什么是树?我想这有点难以解释,因为在我的理解中,树就是一种抽象出来的数据结构类型,把图画出来就像是一个倒置的树冠。如下图就是一棵树。
2 树的术语
2.1 树的属性
1、结点的层次(深度)——从上往下数(一般默认从1开始数)
2、结点的高度——从下往上数
3、树的高度(深度)——总共多少层
4、结点的度——有几个孩子(分支)
5、树的度——各结点的度的最大值
2.2 空树:节点数为0的树
2.3 非空树的特性
1、有且仅有一个根结点
2、没有后继的结点称为“叶子结点”(终端结点)
3、有后继的结点称为“分支结点”(非终端结点)
4、除了根结点外,任何一个结点都有且仅有一个前驱
5、每个结点可以有0个或多个后继
6、若结点数 n > 1,则能将其余结点分为 m 个互不相交的有限集合,每个集合本身又是一棵树,并且称为根结点的子树。
2.4 有序树:逻辑上看,树中结点的各子树从左至右是有次序的,
2.5 无序树:逻辑上看,树中结点的各子树从左至右是无次序的
2.6 森林:是 m(m ≥ 0)棵互不相交的树的集合
3 常见的考点
1 结点数 = 总度数 + 1
2 度为 m 的树第 i 层最多有 个结点
3 高度为 h 的 m 叉树最多有 个叶结点,个结点。
4 度为 m 的树与 m 叉树比较:
(1)若高度一致,则总结点数最多数量一致
(2)若高度 h 一致,度为 m 的树最少有 h + m - 1 个结点; m 叉树最少有 h 个结点
(3)度为 m 的树不可以为空,m 叉树可以为空
(4)度为 m 的树至少有一个结点的度为 m ,m 叉树的结点的度都小于等于 m
二、二叉树
1 二叉树的基本概念
1、二叉树是 n(n ≥ 0)个结点的有限集合
2、当 n = 0 时为空二叉树
3、由一个根节点和两个互不相交的被称为根的左子树和右子树组成。左子树和右子树又分别是一棵二叉树
4、特点:每个结点至多有两棵子树;左右子树不能颠倒(有序树)
5、五种状态:空二叉树;只有左子树;只有右子树;只有根节点;左右子树都有
2 几种特殊的二叉树
2.1 满二叉树
如下图所示即为满二叉树
特点:
1、仅最后一层为叶子结点
2、不存在度为 1 的结点
3、按层序从 1 开始编号,结点 i 的左孩子为 2i ,右孩子为 2i + 1 ;结点 i 的父节点为 i/2(向下取整)(如果存在)
2.2 完全二叉树
如下图所示,相当于满二叉树的最后一层没有填满的情况。
特点:
1、只有最后两层有叶结点
2、最多只有一个度为 1 的结点
3、与满二叉树特点 3 相同的特点
4、若总结点数为 n ,则结点位序 时为分支结点; 时为叶子结点
2.3 二叉排序树
如图所示,排序树顾名思义,就是起到排序作用的树。因此,树中数据需要以一定的规律去存储。例如:1、左子树所有结点的数据小于根结点的数据;2、右子树所有结点的数据小于根结点的数据;3、左子树与右子树也是二叉排序树。
2.4 平衡二叉树
在二叉排序树的基础上,左右子树的深度之差不超过 1
3 常见考点
1、若非空二叉树中度为 0、1、2 的结点个数分别为 a、b、c,则 a = c + 1,即叶子结点比二分支结点多一个,a + c 一定为奇数。
2、m 叉树的第 i 层最多有 个结点
3、高度为 h 的 m 叉树最多有个结点
4、具有 n 个结点的满二叉树的高度 h 为 或者
5、与考点 1 结合,完全二叉树中,度为 1 的结点数(下简称 b)为 0 或 1 。因此当完全二叉树的总结点数为偶数时,b = 1;当总结点数为奇数时,b = 0
三、二叉树的顺序存储
由于当采用顺序存储时,可以将结点的位序与顺序表的位序相对应起来;同时考虑到存储的紧凑,所以仅适用于完全二叉树的存储。若不为完全二叉树,最坏情况下只有右孩子结点,会造成存储空间的大量浪费。
后记
今天内容有点少,全是概念性的东西,没有什么实现的内容。
明天会复习二叉树的链式存储以及基本操作,还会复习一部分的线索二叉树的内容。我等等先去试着实现一下。
虽然毕设是弄完了,但是还有答辩,后续可能还会停一段时间吧。