红黑树学习笔记之红黑树的插入

附加知识点:

1. 红黑树的规则

《红黑树学习笔记之红黑树的插入》

2.“3+4”重构

《红黑树学习笔记之红黑树的插入》

无论插入还是删除,无论是单旋还是双旋,最终效果应该都是这样一种形式。

一. 双红缺陷

1. 插入关键码e,并设T中文本不含e

2. x=insert(e)必为末端节点,设x的父亲p=x->parent存在

3. 将x染红(除非它是根),规则124依然满足,而3则不一定

4. 双红(double-red):新插入的节点x与它的父亲p同时为红色=>双红缺陷

   《红黑树学习笔记之红黑树的插入》

二. RR-1

u->color=Black

1. zig-zig

  《红黑树学习笔记之红黑树的插入》

 只需将超级节点中pg的颜色互换。

2. zag-zig

  《红黑树学习笔记之红黑树的插入》

只需将超级节点中xg的颜色互换。

三. RR-2

u->color=Red

《红黑树学习笔记之红黑树的插入》

当叔父节点u为红色时,修正双红缺陷导致的红黑树拓扑结构的变化为没有变化

四. 归纳

1. 重构,染色均属常数时间的局部操作,只需统计其总次数。

2.

 《红黑树学习笔记之红黑树的插入》

判读叔父节点的颜色,为黑色则做一次局部的3+4调整,再做常数次的染色操作。

红色则略复杂,需做常数次的重染色,但可能导致在更高的节点处进而出现双红缺陷,需重新回到算法的入口。最坏的情况会多大O(logn),但这个循环的过程,只需做重染色,不必做任何的结构调整。

《红黑树学习笔记之红黑树的插入》

3. 

《红黑树学习笔记之红黑树的插入》






    原文作者:算法小白
    原文地址: https://blog.csdn.net/wydyd110/article/details/80097246
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞