1.红黑树的特质
1.每个节点不是红色就是黑色
2.不可能有连在一起的红色节点
3.根节点都是黑色的 root(没有父节点的节点就是根节点,即入度为0)
4.每个红色节点的两个子节点都是黑色,叶子节点都是黑色,出度为0,满足了性质就可以近似的平衡了,不一定要红黑,也可以是其他的。
2.红黑树的旋转
红黑树有三种旋转方式
1.改变颜色(红变黑,黑变红)
2.左旋
3.右旋
3.红黑树的旋转规则
旋转和颜色变换规则: 所有插入的点默认为红色。
1.变颜色情况: 当前结点的父亲是红色,且它的祖父结点的另一个子结点也是红色(叔叔结点)
1)把父结点设置为黑色
2)把叔叔也设置为黑色
3)把祖父也就是父亲的父亲设置为红色(爷爷)
4)把指针定义到祖父结点设置为当前要操作的。(爷爷)分析的点变换的规则
2.左旋: 当前父结点是红色,叔叔是黑色的时候,且当前的结点是右子树。左旋以父结点作为左旋
3.右旋: 当前父结点是红色,叔叔是黑色的时候,且当前的结点是左子树。右旋:
1)把父结点变成黑色
2)把祖父结点变为红色(爷爷)
3)把祖父结点旋转(爷爷)