红黑树是一种自平衡二叉查找树结构,它的特点就是能够以 O(logn) 的时间复杂度进行查找,插入和删除操作,这使得它在实际的开发中常被用于高效存储和检索大量数据。红黑树在于其他平衡二叉树结构相比来说,具有足够的平衡性和查询速度。可以说红黑树是集大成者,在保证相对平衡性的同时,还有不错的更新性能,红黑树的应用非常广泛,例如Linux内核、C 的STL库等等。
红黑树的命名,源于它的性质,每个节点被标记为红色或黑色。红色节点表示违反了树的平衡性质,黑色节点表示树是平衡的。红黑树的每个节点都包含一个对象, 由三个属性:color、key和value。node.color指向节点的颜色(红或黑)。node.key是节点的关键值,node.value是与该节点相关联的存储的数据。