红黑树的插入操作首先和搜索二叉树一样先要找到插入的位置,找到后将节点插入,但是鉴于红黑树的性质,插入的节点为红色,如果插入位置的父亲也为红色则红黑树的平衡被打破,需要进行调整,具体的分为以下4种情况:
首先规定插入节点为X, 其父亲节点为P,兄弟节点为S,祖父节点为G:
1.S为黑色(null)。且X为外侧插入:只要将G做一次单旋转,改变P G的颜色,即可调整完成。
2..S为黑色(null)。且X为内侧插入:首先将S走一次左旋,然后G做一次右旋转,改变G和S颜色。
3.S为红色,X为外侧插入:P G先做一次单旋转,并改变P和G的颜色,此时如果GG为黑色则调整完成,否则继续往上做,重复1,2,3 的判断,直到不再有父子连接是红色的情况