首先,给大家介绍一下什么叫红黑树。看了很多书,查了很多资料,个人觉得还是《算法导论》上说的正确。我们来看看它上面是如何说的:
(PS:请特别注意红色标注的地方,这是红黑树的特性和其保持平衡的关键)
这些约束强制的红-黑树的临界特性:从根到最远叶的路径是不超过两倍,只要从根到最近的叶的路径更短。其结果是,该树是大致高度平衡。因为诸如插入,删除,和发现值的操作所需要的最坏情况下的时间正比于树的高度,这个理论上限的高度允许红黑树是在最坏的情况下有效。
本博文主要介绍的是红黑树的插入,关于其的删除和其他,暂时不与实现。
首先,我们来分析下插入时应该注意什么,在此过程中,读者要始终记住红黑树的特性和其最长路径不超过最短路径的两倍。
以及,最后一种情况:
在插入情况中,网上有的高手总结出了五种情况,在《算法导论》上,作者总结出了四种情况,其实大多大同小异,在下面给出算法导论中的分析,至于网上高手的情况,本人会给出链接(个人认为好的)。
具体代码实现在点击打开链接
如果想动态的看它的插入看点击打开链接
其次,想了解删除的同学,可以看看点击打开链接
还有一篇文章也不错点击打开链接
本文因该数据结构比较难,可能本人表述的有问题或者错误,望读者指出。还有很多不全之处,也请多多见谅