1、红黑树:是一种二叉排序树。在此基础上,为每一个节点都增加了一个存储位来表示节点的颜色,(Red or black)
根据从根到叶子特定的着色方式,使得它确保了没有一条路径会比其他路径长两倍,所以接近平衡的状态。
2、红黑树本质上属于二叉排序树,因此符合二叉排序树的所有性质。红黑树又是相对平衡的,它保证了操作(插入、查找、删除)时间复杂度为O(logn)
3、性质
(1)每个节点非黑即红
(2)根节点必须为黑
(3)每个叶节点(空节点)均为黑色
(4)如果一个节点是红色的,那么它的两个孩子节点都是黑色的
(5)对于任意结点,其到叶节点(空节点)的每条路径都包含相同数目的黑节点
4、
(1)STL容器中的set,使用到的数据结构:红黑树
(2)红黑树与AVL树比较:
- 算法时间复杂度相同,查找效率都为O(logn)
- 红黑树统计性能较好,适于插入和删除的操作