1. 定义
红黑树是满足下列条件的二叉查找树:
每个节点都带有红色或黑色。节点的颜色由以下规则确定:
根节点是黑色的。
所有叶节点都是黑色的。
在沿着从根出发的任何路径上都不允许出现两个连续的红色节点,即:“红色”结点的两个子结点都是“黑色”的。
从任一节点到其每个子孙叶子节点的所有简单路径都包含相同数目的黑色节点(简称黑色高度)
节点X的黑色高度:从节点X到其子孙叶子节点的简单路径中的黑色链的数量。
红黑树的黑色高度:根节点的黑色高度(称为:根节点的阶)
红黑树的两种不同定义:
《算法导论》:叶子节点是指,扩充外部叶结点。即叶子节点为空的“黑色”节点
- 可以认为是2-3-4树的二叉树实现
《程序员实用算法》:数据只存储在叶子节点中,内部节点只用于引用;
示例:
《算法导论》中的红黑树,,黑色高度为2。
《程序员实用算法》中的红黑树,黑色高度为2。加粗为黑色结点
本文基于《算法导论》的定义介绍。