一、普通树的基本性质
1.树中的结点数 = 总度数 + 1
-
每条边对应一个度数
-
根结点没有父结点,所以少一条边
-
公式:n = 总度数 + 1
- 度为 m 的树(m 叉树)第 i 层最多结点数
-
第 1 层:1 个
-
第 2 层:m 个
-
第 3 层:m² 个
-
第 i 层最多:m^(i-1)个结点
- 高度为 h 的 m 叉树最多结点数
-(m^h-1)/(m-1)
- 高度 h 与最少结点数
-
每层至少 1 个结点
-
最少结点数:h
二、二叉树的重要性质
性质 1
二叉树第 i 层上最多有 2^(i−1)个结点
(i ≥ 1)
性质 2
深度(高度)为 k的二叉树最多有 2^k − 1 个结点
(满二叉树)
性质 3
对任意一棵二叉树:
叶子结点数 n₀ = 度为 2 的结点数 n₂ + 1
即:
n_0 = n_2 + 1
性质 4
具有度为m,有 n 个结点的完全二叉树高度:
h = log_2(n(n(m-1)+1)
性质 5(完全二叉树父子下标关系)
对按层序编号 1~n 的完全二叉树:
-
结点 i 的左孩子:2i
-
结点 i 的右孩子:2i + 1
-
结点 i 的父结点:⌊i/2⌋
-
叶子结点一定在最后一层或倒数第二层
三、满二叉树 & 完全二叉树 区别与性质
- 满二叉树
-
每一层都达到最大结点数
-
高度 k,结点总数:2^k − 1
-
所有叶子都在最底层
-
只有度为 0 和度为 2 的结点,没有度为 1 的结点
- 完全二叉树
-
除最后一层外,每层都满
-
最后一层结点靠左连续排列
-
最多只有一个度为 1 的结点,且一定只有左孩子
-
是顺序存储(数组)的最佳结构
四、二叉树 vs 度为 2 的有序树
-
二叉树是严格有序:左孩子≠右孩子,交换即不同树
-
度为 2 的普通树:子树不分左右,只看个数
-
二叉树可以空树、只有左子树、只有右子树
-
普通树至少 1 个结点(非空定义)
五、树、二叉树、森林之间的转换规律
1.树 ↔ 二叉树
-
左孩子:原树的第一个孩子
-
右孩子:原树的兄弟结点
- 森林 ↔ 二叉树
-
每棵树转为二叉树
-
依次把后一棵树的根作为前一棵树的右孩子
- 转换后性质
-
树的先根遍历= 对应二叉树先序遍历
-
树的后根遍历 = 对应二叉树中序遍历
六、高度、深度、层数的统一说明
-
根结点层数 = 1
-
结点深度 = 层数
-
树的高度 = 最大层数
-
叶子高度 = 1
-
空树高度 = 0
七、快速记忆口诀
-
树结点数 = 总度数 + 1
-
二叉树第 i 层最多 2^(i−1)
-
满二叉树总数 2^k − 1
-
叶子数 = 度2结点数 + 1
-
完全二叉树高度 ⌊log₂n⌋ + 1
-
完全二叉树下标:左2i、右2i+1、父i/2