4.2.3二叉树的性质
性质1:层节点数上限
表述:二叉树的第i层(i \geq 1)上至多有2^{i-1}个节点。
性质2:总节点数上限
表述:深度为k(k \geq 1)的二叉树至多有2^{k} - 1个节点。
性质3:叶节点与分支节点关系
表述:对任何二叉树T,若其终端节点数为n_0,度为2的节点数为n_2,则n_0 = n_2 + 1。
证明
设:
- n_1为度为1的节点数
- n为总节点数
- B为分支总数
-
节点总数关系:
n = n_0 + n_1 + n_2 \quad (4-2) -
分支总数计算:
B = n_1 + 2n_2 \quad (4-4) -
节点与分支关系:
n = B + 1 \quad (4-3) -
联立方程:将(4-4)代入(4-3):
n = n_1 + 2n_2 + 1 \quad (4-5) -
消元求解:
联立(4-2)和(4-5):n_0 + n_1 + n_2 = n_1 + 2n_2 + 1化简得:
n_0 = n_2 + 1
性质4:完全二叉树深度公式
表述:具有n个节点的完全二叉树的深度为\lfloor \log_2 n \rfloor + 1(\lfloor x \rfloor表示不大于x的最大整数)。
证明
设深度为k(k \geq 1):
-
节点范围:
2^{k-1} - 1 < n \leq 2^k - 1 -
取对数化简:
2^{k-1} \leq n < 2^k\log_2 n < k \leq \log_2 n + 1 -
深度公式:
k = \lfloor \log_2 n \rfloor + 1
性质5:完全二叉树节点关系
表述:对完全二叉树中按层序编号的节点i(0 \leq i < n):
-
双亲节点:
- 若i = 0,节点为根(无双亲)
- 若i > 0,双亲节点为\lfloor (i-1)/2 \rfloor
-
左孩子:
- 若2i + 1 \geq n,无左孩子
- 若2i + 1 < n,左孩子为2i + 1
-
右孩子:
- 若2i + 2 \geq n,无右孩子
- 若2i + 2 < n,右孩子为2i + 2
节点关系示例
节点i | 双亲 | 左孩子 | 右孩子 |
---|---|---|---|
0 | 无 | 1 | 2 |
1 | 0 | 3 | 4 |
2 | 0 | 5 | 6 |
... | \lfloor (i-1)/2 \rfloor | 2i+1 | 2i+2 |
符号说明:
- \lfloor x \rfloor:不大于x的最大整数
- \lceil x \rceil:不小于x的最小整数