红黑树

Posted mb61b2cffc33d22

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了红黑树相关的知识,希望对你有一定的参考价值。

红黑树(一)

  • ① 下面这棵树是否是红黑树?

    回顾红黑树必须满足以下5条性质

  1. 节点是RED或者BLACK

  2. 根节点是BLACK

  3. 叶子节点(外部节点,空节点)都是BLACK

  4. RED节点的子节点都是BLACK
    4.1 RED节点的parent 都是BLACK
    4.2 从根节点到叶子节点的所有路径_上不能有2个连续的RED节点

  5. 从任一节点到叶子节点的所有路径都包含相同数目的BLACK节点

按照规则5来进行分析,38的右边是没有叶子节点的,但是其实是子叶子null的,也就是从根节点到38右边的子叶子是null,黑色只有2个,其他都是3个,很明显这不是一颗红黑树。

红黑树_红黑树

  • ② 红黑树的等价变换

红黑树_红黑树_02

38 和 80 上升一层。就转成了一颗B树。4阶B树。

红黑树_子节点_03

  1. 红黑树和4阶B树(2-3-4树) 具有等价性

  2. BLACK节点与它的RED子节点融合在一起,形成1个B树节点

  3. 红黑树的BLACK节点个数与4阶B树的节点总个数相等

  4. 网上有些教程:用2-3树与红黑树进行类比,这是极其不严谨的,2-3树并不能完美匹配红黑树的所有情况,只有4阶B树才能完美匹配。

以上是关于红黑树的主要内容,如果未能解决你的问题,请参考以下文章

红黑树介绍与实现

红黑树介绍与实现

数据结构之红黑树

红黑树(C++实现)

数据结构之红黑树

红黑树介绍和结点的插入