红黑树的特点
红黑树是自平衡二叉树。红黑树在每个节点增加一个存储位表示节点的颜色,可以是红或黑。
自平衡二叉树的平衡是通过局部不平衡的动态优化最终达到全局优化的。平衡二叉树的平衡稳定是通过查找最低不平衡节点递归实现的。
红黑树的红黑规则
- 每一个节点不是红色就是黑色的。
- 根节点总是黑色的。
- 如果节点是红色的,则它的子节点必须是黑色的(反之不一定成立)。(所有红色结点不可以直接相连)。
- 从根节点到叶节点或者到空子节点(非叶节点可以接子节点的位置)的每条路径,必须包含相同数目的黑色节点。(一个右子节点的节点(没有左子节点)就有一个空子节点)。
- 每个指向空(用NIL或NULL表示)的叶子节点是黑色的。
红黑树的查询复杂度
通过归纳法可以论证红黑树的时间复杂度为O(logn)。
参考资料:平衡二叉树与自平衡二叉树(红黑树)的区别