目录
树
树的基本概念
树是 n ( n >= 0 ) 个结点的有限集合, n = 0 时,称为空树。
树是一种递归的数据结构
树是从树根生长,逐级分支
在任意一颗非空树中应满足:
-
1)有且仅有一个特定的称为根的结点
-
2)当 n > 1 时,其余结点分为 m (m > 0) 个互不相交的有限集合 T1, T2, T3, ..., Tm, 其中每 个集合本身又为一棵树,并且称为根结点的子树
空树 —— 结点数为 0 的树
非空树 —— 有且仅有一个根节点
没有后继的结点称为 “ 叶子结点 ”(终端结点)度为零的结点
有后继的结点称为 “ 分支结点 ” (非终端结点)度不为零的结点
树形逻辑结构的应用
行政划分地图,文件系统,后期补充。
结点之间的关系描述
祖先结点:沿着当前结点向上走,沿边,经过的结点都是祖先结点
-
子孙结点:当前结点下方的所有结点
-
双亲结点:一个结点的直接前驱(父结点)
-
孩子结点:一个结点的直接后继
-
兄弟结点:同一个结点下的结点
-
堂兄弟结点:除兄弟结点外和当前结点同一层的结点
-
两条结点的路径:从上往下,单向的,(爷爷 -> 父亲 -> 我 -> 儿子)
-
路径长度:经过几条边
-
结点、树的属性描述
结点的层次(深度)—— 从上往下数, (海拔以下),默认从 0 开始,也可以从 1 开始
-
结点的高度 ————— 从下往上数, (海拔以上)
-
树的高度(深度)——— 总共层数
-
结点的度 —————— 有几个孩子(分支)
-
树的度 —————— 各结点度的最大值
有序树 and 无序树
有序树 —— 逻辑上,树中结点的各子树从左至右是有次序的,不能交换。
无序树 —— 逻辑上,树中结点的各子树从左到右是无次序的,可以交换。
例如:地图的行政划分,划分区域之间如 北京市、深圳市 的次序可以不分次序,所以为无序树
树与森林
森林 —— m (m >= 0) 棵互不相交的树的集合
m = 0 时为空森林
森林运用eg:一个群体的家庭成员
森林与树的转换,后期补充
树的性质
结点数 = 总度数 + 1(每一个结点的孩子在加上根)
度为 m 的树、m 叉树 的区别
树的度 —— 各结点的度的最大值 | m 叉树 —— 每个结点最多只能有 m 个孩子的树 |
度为 m 的树 | m 叉树 |
任意结点的度 <= m (最多 m 个孩子) | 任意结点的度 <= m (最多 m 个孩子) |
至少有一个结点度 = m (有 m 个孩子) | 允许所有结点的度都 < m |
一定是非空树,至少有 m + 1 个结点 | 可以是空树 |
度为 m 的树第 i 层至多有 个结点 ( i >= 1)
m 叉树第 i 层至多有 个结点 ( i >= 1)
高度为 h 的 m 叉树至多有 个结点 (等比数列求和)
高度为 h 的 m 叉树至少有 h 个结点
高度为 h 、度为 m 的树至少有 h + m + 1 个结点
有 n 个结点的 m 叉树的最小高度为
二叉树
二叉树的基本概念
二叉树是 n (n >= 0) 个结点的有限集合,是有序树
每个结点至多只有两颗子树,左右子树不能颠倒
要与度为 2 的树进行区分
二叉树的五种状态
空二叉树
只有左子树
只有右子树
只有根结点
左右子树都有
特殊的二叉树
满二叉树
高度为 h ,含有 个结点的二叉树
特性:
1、最后一层有叶子结点
2、不存在度为 1 的结点
3、按层序从 1 开始编号,结点 i 的左孩子为 2i ,右孩子为 2i + 1;结点 i 的父结点为 i / 2(有的话)
完全二叉树
每个结点编号与二叉树一一对应,如果删掉结点 12 ,则结点13的编号会变成12,结点便后不对应,就不是完全二叉树
特性:
1、只有可能在最后两层出现叶子结点
2、只可能有一个度为 1 的结点
3、按层序从 1 开始编号,结点 i 的左孩子为 2i ,右孩子为 2i + 1;结点 i 的父结点为 i / 2(有的话)
4、i <= (n / 2) 为分支结点,i > (n / 2) 为叶子结点 (总结点 n)
二叉排序树
用于元素的排序和搜索
左子树上所有结点的关键字均小于根结点的关键字;
右子树上所有结点的关键字均大于根结点的关键字。
左子树右子树又各是一颗二叉排序树
运用:插入数据 21,从根结点开始,21 > 12 , 21 位于右子树,21 < 24 ,21 位于以 24 为根结点的左子树,21 < 22 ,21 位于以 22 为头结点的 左子树。
平衡二叉树
平衡二叉树搜索效率更高,丰满的树
树上任一结点的左子树和右子树的深度之差不超过 1。
二叉树的性质
1、非空二叉树中度为 0 、1 和 2 的结点个数分别为 、
和
,则
=
+ 1
(叶子结点比二分支结点多一个)
2、二叉树第 i 层至多有 个结点 ( i >= 1)
3、高度为 h 的 二叉树至多有 个结点 (等比数列求和)
完全二叉树性质:
1、具有 n 个 (n > 0)结点的完全二叉树的高度 h 为 或
2、完全二叉树,可以由结点数 n 推出度为 0、1 和 2 的结点个数为 、
和
完全二叉树最多只有一个度为 1 的结点 , = 0 或 1
=
+ 1 ,
+
一定是奇数