红黑树,是一种二叉搜索树,但在每个结点上增加一个存储位表示结点的颜色,可以是Red或Black。 通过任何一条从根到叶子的路径上各个结点着色方式的限制,红黑树确保没有一条路径会比其他路径长出俩倍,因而是接近平衡的。
属性来确保树的平衡。它的名称来自于每个节点上的颜色标记,可以是红色或黑色。
红黑树具有以下特性:
- 每个节点都有一个颜色属性,可以是红色或黑色。
- 根节点是黑色的。
- 所有叶子节点(NIL节点)都是黑色的。
- 如果一个节点是红色的,那么它的两个子节点都是黑色的。
- 对于每个节点,从该节点到其所有后代叶子节点的简单路径上,均包含相同数目的黑色节点。
这些特性保证了红黑树的关键性质,包括:
- 从根节点到任意叶子节点的最长路径不会超过最短路径的两倍。这确保了红黑树的高度始终保持在O(log n)的范围内,其中n是树中节点的数量。
- 红黑树可以在O(log n)的时间内进行插入、删除和查找操作,保持了较好的性能。
通过对节点的颜色和结构进行调整,红黑树能够在插入或删除节点时自动重新平衡,以保持树的平衡性质。这种自平衡的特性使得红黑树在很多应用中被广泛使用,包括在标准库中的数据结构实现以及数据库、操作系统等领域。