红黑树性质
根结点黑;空结点黑;红的子结点必为黑;所有路径黑结点个数相等
最长路径小于等于最短路径的2倍
红黑树插入结点
设待插入结点为p,每次递归讨论p,直到调整为一棵红黑树
-
p为根结点:直接染黑
-
p的父结点为黑:直接插入p即可
-
p的父结点为红,叔结点为红:将父结点和叔结点染黑,祖父结点染红,将祖父结点设为p
- 以下为p的父结点为红,叔结点为黑的情况:
4-1. 父结点是左孩子,p是右孩子(LR型):将父结点设为p,将p左旋
4-2. 父结点是左孩子,p是左孩子(LL型):p的父结点染黑,p的祖父结点染红,将祖父结点右旋
4-3. 父结点是右孩子,p是左孩子(RL型):将父结点设为p,将p右旋
4-4. 父结点是右孩子,p是右孩子(RR型):p的父结点染黑,p的祖父结点染红,将祖父结点左旋
注:4-1和4-3镜像对称,4-2和4-4镜像对称;经过一次4-1操作之后将变为4-2的情况,经过一次4-3操作之后将变为4-4的情况。