数据结构之红黑树及Java实现

一、红黑树的基本介绍

红黑树也是一种特殊的二叉查找树,与平衡树相似,它也是为了解决普通二叉查找树的检索效率问题而设计的,红黑树的每个节点上都有存储位表示节点的颜色,可以是红(Red)或黑(Black)。红黑树并不是真正的平衡二叉树,但在实际应用中,红黑树的统计性能要高于平衡二叉树,但极端性能略差。

红黑树在原有排序二叉树的基础上增加了几个特性:
(1)每个节点或者是黑色,或者是红色。
(2)根节点是黑色。
(3)每个叶子节点是黑色。
(4)如果一个节点是红色的,则它的子节点必须是黑色的。
(5)从一个节点到该节点的子孙节点的所有路径上包含相同数目的黑节点。

注意:
(01) 特性(3)中的叶子节点,是只为空(NIL或null)的节点。
(02) 特性(5),确保没有一条路径会比其他路径长出俩倍。因而,红黑树是相对是接近平衡的二叉树。

红黑树的特征如下所示,其中白色节点代表红色,黑色节点采用了黑色表示

二、红黑树的实现

猜你喜欢

转载自blog.csdn.net/xdzhouxin/article/details/80015292