二叉树的五条核心性质

以下性质默认非空二叉树,根结点层次为 1。

性质 1:第 ii 层最多有 2i−12^{i-1} 个结点

  • 证明:第 1 层最多 1 个(202^0),第 2 层最多 2 个(212^1),……,第 ii 层最多 2i−12^{i-1} 个。

性质 2:深度为 hh 的二叉树最多有 2h−12^h - 1 个结点

  • 证明:各层最多结点数之和:20+21+⋯+2h−1=2h−12^0 + 2^1 + \dots + 2^{h-1} = 2^h - 1。
  • 注意:当树为满二叉树时达到最大值。

性质 3:对任意二叉树,若叶子结点数为 n0n_0,度为 2 的结点数为 n2n_2,则 n0=n2+1n_0 = n_2 + 1

  • 证明:设总结点数 n=n0+n1+n2n = n_0 + n_1 + n_2,总分支数(边数)B=n−1=n1+2n2B = n - 1 = n_1 + 2n_2。两式联立消去 nn 得 n0=n2+1n_0 = n_2 + 1。

性质 4:具有 nn 个结点的完全二叉树深度为 ⌊log⁡2n⌋+1\lfloor \log_2 n \rfloor + 1

  • 证明:设深度为 hh,则 2h−1≤n<2h2^{h-1} \le n < 2^h,取对数得 h−1≤log⁡2n<hh-1 \le \log_2 n < h,故 h=⌊log⁡2n⌋+1h = \lfloor \log_2 n \rfloor + 1。

性质 5(完全二叉树结点编号规律):按层序编号(从 1 开始)

对编号为 ii 的结点:

  • 若 i=1i = 1,为根;否则双亲编号为 ⌊i/2⌋\lfloor i/2 \rfloor。
  • 若 2i≤n2i \le n,则左孩子编号为 2i2i;否则无左孩子。
  • 若 2i+1≤n2i+1 \le n,则右孩子编号为 2i+12i+1;否则无右孩子。

这是数组存储完全二叉树的理论基础。

总结表

性质 公式 用途
第 i 层最多结点数 2i−12^{i-1} 求满二叉树某层结点
深度 h 最多结点数 2h−12^h - 1 判断满二叉树
叶子与度为 2 的关系 n0=n2+1n_0 = n_2 + 1 已知一种求另一种
完全二叉树深度 ⌊log⁡2n⌋+1\lfloor \log_2 n \rfloor + 1 计算深度
结点编号关系 双亲、孩子编号公式 顺序存储实现