红黑树是一种特殊的自平衡二叉排序树,它属于平衡树,但是却没有平衡二叉树那么“平衡”,因为他对左右子树高度差的要求没有那么严格,而是遵循自己的“特有的红黑规则”。
红黑规则:5条
这里简单路径是指:从每一个节点到其后代的叶节点(Nil)的所有路径
红黑规则要求在这条简单路径上黑色节点数相同
同等情况插入三个红色节点时,仅需调整一次(另根节点为黑),即可满足红黑条件;而插入三个黑色节点,需要调整2次才行
所以红黑树默认添加节点颜色是红色,效率最高
红黑树添加节点规则:具体实现看视频196(基础上部)
注意点:
在添加节点为非根,父结点为红色看,在叔类为红色/黑色且节点是父的右孩子时,需要以祖父类/父类节点为标准进行重新操作
增删改查性能为何好?
大部分时间对节点的处理都是修改颜色(成员变量),要重新操作的旋转比平衡二叉树少太多了