R-B Tree

来源:互联网 发布:国际数据是什么 编辑:程序博客网 时间:2024/04/30 05:58

在STL的源码剖析中,可以看到关联式容器set、map、multiset、multimap等的底层实现都是RBTree;除此之外,java中的TreeSet、TreeMap以及linux虚拟内存的管理,都是通过此树实现。


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

红黑树的特性:
(1)每个节点或者是黑色,或者是红色。
(2)根节点是黑色。
(3)每个叶子节点(NIL)是黑色。 [注意:这里叶子节点,是指为空(NIL或NULL)的叶子节点!
(4)如果一个节点是红色的,则它的子节点必须是黑色的。
(5)从一个节点到该节点的子孙节点的所有路径上包含相同数目的黑结点。


下图摘自《STL源码剖析》
这里写图片描述


0 0
原创粉丝点击