红黑树:
也是一种自平衡的树,它不是根据子树的高度差来调整平衡的,而是给节点设置一种颜色来达到平衡
红黑色的特性:
1、每个节点或者是黑色、或者是红色
2、根节点必须是黑色
3、每个叶子节点(NULL)是黑色
4、如果一个节点是红色,则它的子节点必须是黑色,不能有两个连续的红色节点
5、从一个节点到该节点的子孙节点的所有路径上包含了相同数目的黑色节点
保证大致上红黑树是平衡 (最长路径不超过最短路径的两倍)
红黑树插入后的调整: 插入的节点一定是红色
1、如果父节点是黑色,直接插入
2、如果父节点是红色,需要调整
a、叔叔不存在 or 叔叔为黑色
进行左旋 or 右旋
祖父节点置红 父节点置黑
b、叔叔存在且为红色
把祖父置红,父节点和叔叔置黑
把祖父节点当做