red-black tree是自平衡 (非绝对平衡) 的二叉查找树!
先尝试recolor,(置色红黑)
再尝试rotation;(旋转)
插入新节点,标红,如果为根节点,则标黑;
如果不是根节点,且其parent是红,uncle是红:
{
1.将parent和uncle同时标黑;
2.将grand parent标红;
3.新节点标红;(让新节点的颜色与其grand parent颜色一致)
}
插入新节点,标红,如果为根节点,则标黑;
如果不是根节点,且其parent是红,uncle是黑:
{
1.左左 (parent结点设置为root结点,标黑,grand parent结点标红设置为parent结点的右节点)
2.左右(parent结点和新节点更换位置,重复左左情况,新节点置为root结点,并表黑,grand parent结点成为新节点的右孩子,并标红)
3.右右(左左的镜像,将parent结点置为root结点,标黑,grand parent结点置为parent的左节点,标红)
4.右左(左右的镜像,将parent结点和新节点交换位置,将新节点置为root结点,标黑,grand parent结点设置为新结点的左孩子,标红)
}