【数据结构】红黑树原理详解
红黑树原理详解
R-B Tree,全称是Red-Black Tree,又称为“红黑树”,它一种特殊的二叉查找树。红黑树的每个节点上都有存储位表示节点的颜色,可以是红(Red)或黑(Black)。
红黑树的特性:
(1)每个节点要么是黑色,要么是红色。
(2)根节点是黑色。
(3)每个叶子节点(NIL)是黑色。 [注意:这里叶子节点,是指为空(NIL或NULL)的叶子节点!]
(4)如果一个节点是红色,则它的所有子节点都是黑色。
(5)对每个节点,从该节点到其子孙节点的所有路径上包含相同数目的黑结点。
注意:
(01) 特性(3)中的叶子节点,是只为空(NIL或null)的节点。
(02) 特性(5),确保没有一条路径会比其他路径长出俩倍。因而,红黑树是相对是接近平衡的二叉树。
红黑树示意图如下:
红黑树的应用
红黑树的应用比较广泛,主要是用它来存储有序的数据,它的时间复杂度是O(logn),效率非常之高。
例如,Java集合中的TreeSet和TreeMap,C++
STL中的set、map,以及Linux虚拟内存的管理,都是通过红黑树去实现的。
OK!至此
转载自:https://www.cnblogs.com/skywang12345/p/3245399.html