黑高度

概述

黑高度(black-height, bh) 是红黑树中衡量从某节点到叶子路径上黑色节点数量的关键指标。它是红黑树第五条性质(黑高度一致性)的数学表达,也是推导红黑树高度上界的核心工具。

定义

黑高度

设节点 为红黑树中的一个节点( 可以为 NIL 哨兵节点)。从节点 出发(不包含 本身),到达任意一个后代叶节点(NIL)的简单路径上,黑色节点的个数称为节点 的黑高度,记作

定义要点

  • 不包含节点 本身 只计算从 的子节点开始到 NIL 的黑色节点数。
  • NIL 节点的黑高度为 0,因为 NIL 没有子节点,路径上没有黑色节点。
  • 红黑性质 5 的等价表述:对红黑树中的任意节点 ,从 到其所有后代 NIL 的路径上的黑色节点数相同,即 是良定义的(不依赖于路径的选择)。

示例

        B (bh=2)
       / \
      R   B (bh=1)
     /   / \
    B   R   B (bh=0)
   /   /   /
  NIL NIL NIL
  • 根节点(黑色)的 :到 NIL 的路径上各有 2 个黑色节点(不计根节点本身)。
  • 左子节点(红色)的 :到 NIL 的路径上有 1 个黑色节点。
  • 所有叶子 NIL 的

核心性质

引理 13.1

引理 13.1

以某一节点 为根的子树中,内部节点个数至少为

证明(对 进行数学归纳法):

基础情况:当 时,节点 必为 NIL(哨兵节点),以 为根的子树中没有内部节点,内部节点个数为 。基础情况成立。

归纳假设:假设对于 ,以 为根的子树至少有 个内部节点。

归纳步骤:考虑 的节点 。设 的左右子节点分别为

  • 为红色,则由红黑性质 4, 均为黑色,因此:
  • 为黑色,则 的黑高度为:

无论 是红是黑,

由归纳假设:

  • 为根的子树至少有 个内部节点
  • 为根的子树至少有 个内部节点

因此,以 为根的子树的内部节点总数至少为:

其中最后的 是节点 本身。归纳步骤成立。

由数学归纳法,引理得证。

推论:红黑树的高度上界

由引理 13.1 可直接推导红黑树的高度上界:

  1. 设红黑树有 个内部节点,根节点为 ,黑高度为
  2. 由引理 13.1:,因此
  3. 由红黑性质 4(红节点的子节点必为黑),从根到叶子的路径上,红色节点数不超过黑色节点数,因此树高
  4. 综合可得:

章节扩展

黑高度是红黑树几乎所有分析的基础:

  • 插入分析:新节点着红色不改变任何路径的黑高度,因此插入最多破坏性质 2 或性质 4。
  • 删除分析:删除黑色节点会减少某条路径的黑高度,需要通过 额外黑色 机制来修复。
  • 旋转分析:旋转操作不改变任何节点的黑高度,只改变局部结构。

参见