红黑树插入

落花浮王杯 提交于 2019-12-04 13:09:25

作为红色节点添加,如果添加之后的父节点是红色,违反红黑树规则,要进行处理。

分两大种情况:

一、叔节点也是红色,这说明祖父节点是黑色,那么把父节点和叔节点变黑,祖父节点变红,问题递归交给祖父节点去处理。如果递归到最后祖父节点是红色的而且是根节点,直接变黑即可。

二、叔节点是黑色的,这时候有四种情况,但是是2v2镜像的,考虑父节点是祖父节点的左子节点,而叔节点是祖父节点的右子节点的情况。在这种情况下,如果插入后节点是父节点的右子节点,把父节点左旋。

变成父节点是插入子节点的左子节点,这时候再右旋原祖父节点,这样的话插入后节点成为祖父节点,原父节点和原叔节点变成左右两个子节点,把插入后节点的颜色变黑,原叔节点的颜色变红即可。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!