概要
这篇说下红黑树
其实,红黑树,对于我来说,比较重要的几点。
满足几个条件
基本思想
插入
删除
这些是很重要的。
满足的条件
红黑树需要满足什么条件呢?
应该有四个,如下:
节点非黑既红
根节点是黑色
叶子(NIL)结点是黑色
红色节点下面接两个黑色节点
从根节点到叶子结点路径上,黑色节点数量相同
基本思想
这个,除了上边四个条件;还要有2个操作,左旋和右旋。
有了这些条件,再加上左旋右旋操作,接下来看看红黑树的插入,删除。
红黑树的插入
叔叔节点为红色的时候,修改三元组小帽子,改成红黑黑
叔叔节点为黑色的时候,参考 AVL 树的失衡情况,分成 L L , L R , R L , R R LL,LR,RL,RRLL,LR,RL,RR, 先参考 AVL 树的旋转调整策略,然后再修改三元组的颜色,有两种调整策略:红色上浮,红色下沉。
两大类情况,包含 8 种小情况