一棵深度为 $k$ 的二叉树,若满足:
则称为完全二叉树。
完全二叉树示例: 非完全二叉树示例:
1 1
/ \ / \
2 3 2 3
/ \ / / / \
4 5 6 4 6 7
右边不是完全二叉树:结点 2 缺右孩子(编号 5 空),却在编号 6、7 上又有结点 —— 层序编号不连续。
按层序从 1 开始逐个编号,先上后下、先左后右:
1
/ \
2 3
/ \ / \
4 5 6 7
| # | 性质 | 公式 / 结论 | 成立条件 |
|---|---|---|---|
| 1 | 结点 $i$ 的双亲 | $\lfloor i/2 \rfloor$ | $i>1$ |
| 2 | 结点 $i$ 的左孩子 | $2i$ | $2i \le n$ |
| 3 | 结点 $i$ 的右孩子 | $2i+1$ | $2i+1 \le n$ |
| 4 | 结点 $i$ 的层次 | $\lfloor \log_2 i \rfloor + 1$ | — |
| 5 | 叶子结点数 | $\lceil n/2 \rceil$ | — |
| 6 | 最后一个非叶结点 | $\lfloor n/2 \rfloor$ | — |
| 7 | 树的高度 | $\lfloor \log_2 n \rfloor + 1$ | — |
| 8 | 度为 1 的结点数 | 0 或 1 | $n$ 奇 → 0;$n$ 偶 → 1 |
| 所求 | 公式 | 结果 |
|---|---|---|
| 叶子结点数 | $\lceil 2024/2 \rceil$ | 1012 |
| 度为 1 的结点数 | $n$ 为偶数 | 1 |
| 树的高度 | $\lfloor \log_2 2024 \rfloor + 1 = \lfloor 10.98 \rfloor + 1$ | 11 |
| 最后一个非叶结点编号 | $\lfloor 2024/2 \rfloor$ | 1012 |
校验:$n_0=1012$、$n_1=1$,则 $n_2=n_0-1=1011$,合计 $1012+1+1011=2024$ ✓
顺带:第 5 层编号从 16 到 20,共 5 个;总高度 $\lfloor\log_2 20\rfloor+1 = 4+1 = 5$ ✓
完全二叉树的核心编号性质($n$ 个结点,编号从 1 开始):
| 公式 | 含义 |
|---|---|
| $\lfloor i/2 \rfloor$ | 双亲编号 |
| $2i$ | 左孩子编号 |
| $2i+1$ | 右孩子编号 |
| $\lfloor n/2 \rfloor$ | 最后一个非叶结点 |
| $\lceil n/2 \rceil$ | 叶子结点数 |
| $\lfloor \log_2 n \rfloor + 1$ | 树的高度 |
(暂无关联知识点)
↑ 源笔记 front-matter 中 related 为空;本页右上「在 Obsidian 中打开」可跳回源笔记。