红黑树
红黑树的平衡条件
- 每个节点非红即黑
- 根节点是黑色的
- 叶节点(NIL)是黑色—指的是不被画出来的那个虚拟空节点
- 如果一个节点是红色,则它的两个子节点都是黑色的
- 从根节点出发到所有叶节点路径上,黑色节点数量相同
红黑树中,最长路径和最短路径长度的关系?
根据平衡条件第4、5两点能够确定:
最短路径,都是黑色
最长路径,红黑相间
最长是最短的两倍
平衡调整小技巧
插入调整站在祖父节点看
删除调整站在父节点看
调整原则
调整之前路径上黑色节点数量要等于调整后黑色节点的数量
红黑树的插入调整
新插入的节点是什么颜色的?
红色:因为插入黑色一定引发失衡,插入红色不一定引发失衡(如果插入节点的父节点是红色就会引发失衡)
情况一
该节点与父节点与叔叔节点都是红色
将父节点与叔叔节点改成黑色,将祖父节点改成红色