删除一个节点同样有可能改变树的平衡性,而且,删除所造成的不平衡性比插入所造成的平衡性的修正更加复杂。
化繁为简是算法分析中一个常用的方法。下面我们将欲删除节点分为三大类:欲删除节点为叶子节点、欲删除节点只有一个子节点和欲删除有两个子节点。
而欲删除节点有两种可能的颜色,也需要分别对待。
为简化讨论,我们以欲删除节点在左侧的情况为例进行修正,如果欲删除节点在右侧,进行镜像地修正操作即可。...
分类:
其他好文 时间:
2015-07-31 09:04:59
阅读次数:
100
在本系列的前面两篇文章中,已经介绍了红黑树以及其插入操作。具体可参考下面两个链接:
红黑树(1) - 介绍
红黑树(2) - 插入操作
1.删除操作介绍
类似于插入操作,红黑树进行删除节点时,也使用重新着色以及旋转这两种方式,来维护它的属性。在插入操作中,我们主要是依靠检测叔节点的颜色来决定哪种场景。在删除操作中,我们使用检测兄弟的颜色,来决定是哪种场景。
在插入操作中,最常见的违反...
分类:
其他好文 时间:
2015-07-12 00:22:30
阅读次数:
140
文章根据红黑树的性质提出了红黑树一些新结论。这些结论可以帮助我们在红黑树删除节点时需不需要进入删除调整算法。...
分类:
其他好文 时间:
2014-07-24 11:29:32
阅读次数:
242