红黑树插入结点

红黑树性质

根结点黑;空结点黑;红的子结点必为黑;所有路径黑结点个数相等

最长路径小于等于最短路径的2倍

红黑树插入结点

设待插入结点为p,每次递归讨论p,直到调整为一棵红黑树

  1. p为根结点:直接染黑

  2. p的父结点为黑:直接插入p即可

  3. p的父结点为红,叔结点为红:将父结点和叔结点染黑,祖父结点染红,将祖父结点设为p

红黑树插入结点_第1张图片

  1. 以下为p的父结点为红,叔结点为黑的情况:

4-1. 父结点是左孩子,p是右孩子(LR型):将父结点设为p,将p左旋

红黑树插入结点_第2张图片

4-2. 父结点是左孩子,p是左孩子(LL型):p的父结点染黑,p的祖父结点染红,将祖父结点右旋

红黑树插入结点_第3张图片

4-3. 父结点是右孩子,p是左孩子(RL型):将父结点设为p,将p右旋

红黑树插入结点_第4张图片

4-4. 父结点是右孩子,p是右孩子(RR型):p的父结点染黑,p的祖父结点染红,将祖父结点左旋

红黑树插入结点_第5张图片

注:4-1和4-3镜像对称,4-2和4-4镜像对称;经过一次4-1操作之后将变为4-2的情况,经过一次4-3操作之后将变为4-4的情况。

你可能感兴趣的:(数据结构与算法,算法,数据结构)