红黑树
平衡树是为了解决二叉查找树退化为链表的情况,而红黑树是为了解决平衡树在插入、删除等操作需要频繁旋转调整的情况
使用颜色来标识结点的高度
STL中的关联式容器(set、map、mulit)默认的底层实现都是红黑树
着色法则确保没有一条路径会比其它路径长出两倍
任意一个节点到到NULL(树尾端)的任何路径,所含之黑色节点数必须相同。
∴新增节点必须为红色
两两节点不能都是红色
∴新增节点之父节点必须为黑色
最后:未能符合上述条件时,就必须调整颜色并旋转树形
1、黑父,直插
2、红父
2.1 红叔 —> 直接变成 黑父和黑叔,
祖变红,怕祖的父为红,再向上迭代
2.1 黑叔 —> 4种旋转