红黑树学习总结:
一:红黑树规则
1.1 根是黑色
2.不能有连续两个红色节点
3. 所有叶子节点下面的两个节点是黑色 且为null
4.所有节点到底部 路径上含有的黑色节点数目相同
5. 每个节点要么红 要么黑
二:红黑树的两大操作
1. 红黑互相转换
2.旋转
旋转适用于左右,右左的情况 (打个不恰当的比方:二叉树 骨折了 要弄直)
2.1 左旋
要把骨折部位 bai向左边 让树成为一条直线 ,并且交换父子元素的位置
2.2 右旋
要把骨折部位 bai向右边 让树成为一条直线,并且交换父子元素的位置
三. 红黑树的几种变换
术语 G 祖父 P 父亲 U 叔叔
第一类情况(无脑插入):
如果父亲是黑色
将新插入的节点变为红色(变色操作) 如果是根则为黑色
第二种情况:
父亲是红色 这样就违背了规则
这样再更具叔叔的颜色分为两种情况 : 叔叔红(same as father) 叔叔黑(different as father)
2.1叔叔红: 简单,直接把 祖父和 父亲叔叔颜色对调 就OK
2.2叔叔黑: 分为四种情况 下面的左右指的是 G->P->X 这一条线
左左:p 是 g 的左子节点 x是p的左子节点 直接以父节点 P 当作绳子的节点 直接令起来 第二部:变色 祖先 黑 其他两个红
右右 :操作同左左
左右: 先经行左旋 P-> X的树枝骨折了,那么先左旋 交换位置 变成直线 然后以 P 为节点令起来