红黑树

2019-06-17  本文已影响0人  一川烟草i蓑衣

 R-B Tree,全称是Red-Black Tree,又称为“红黑树”,红黑树的每个节点上都有存储位表示节点的颜色,可以是红(Red)或黑(Black),它一种特殊的二叉查找树

主要是用它来存储有序的数据,它的时间复杂度是O(lgn),效率非常之高;例如,Java集合中的TreeSetTreeMap,C++ STL中的set、map,以及Linux虚拟内存的管理,都是通过红黑树去实现的

红黑树的特性:

(1)每个节点或者是黑色,或者是红色。

(2)根节点是黑色。

(3)每个叶子节点(NIL)是黑色。 [注意:这里叶子节点,是指为空(NIL或NULL)的叶子节点!]

(4)如果一个节点是红色的,则它的子节点必须是黑色的。

(5)从一个节点到该节点的子孙节点的所有路径上包含相同数目的黑节点。(比如下图1中根节点80到每个分支的黑色节点数目都是2个)

注意

(01) 特性(3)中的叶子节点,是只为空(NIL或null)的节点。

(02) 特性(5),确保没有一条路径会比其他路径长出俩倍。因而,红黑树是相对是接近平衡的二叉树。

红黑树示意图如下:

图1
上一篇 下一篇

猜你喜欢

热点阅读