红黑树原理解析
红黑树的性质讲完了,只要这棵树满足以上性质,这棵树就是趋近与平衡状态的,不要问为什么,发明红黑树的科学家就是这么牛逼!
一、 前面讲红黑树能自平衡,它靠的是什么?三种操作:左旋、右旋和变色。
1.变色:黑变红或者红变黑
2.左旋:上升的节点有两个分支,剪断一个原来的左分支,补到下沉节点的右分支上(看上去的那个的左子节点)
3.右旋:上升的节点有两个分支,剪断一个原来的右分支,补到下沉节点的左分支上(看上去的那个的右子节点)
二、红黑树查找(和二叉查找树一样)
三、红黑树插入:(新节点必须是红色的)
插入操作包括两部分工作:
1.查找插入的位置
2.插入后自平衡
红黑树插入节点情景分析
4.2左左红
4.2.1左左红(LL红)
处理:
1.变颜色:将P设置为黑色,将PP设置为红色
2.对PP节点进行右旋
4.2.2左左红(LR红)
处理:
1.对P进行左旋
2.将P设置为当前节点,得到LL红色情况
3.按照LL红色情况处理(1.变颜色;2.右旋PP)
4.3右右红
4.3.1右右红(RR红)
处理:
1.变颜色:将P设置为黑色,将PP设置为红色
2.对PP节点进行左旋
4.3.2右右红(RL红)
处理:
1.对P右旋
2.将P设置为当前节点,得到RR红色情况
3.爸爸变黑,爷爷变红; 左旋