![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
xkaneiki
这个作者很懒,什么都没留下…
展开
-
红黑树的删除
红黑树的删除普通二叉查找树的删除我们知道红黑树树也是一种二叉查找树,那么普通的二叉查找树的删除必然是红黑树删除的基础。但是红黑树的删除要在普通删除的基础上进行相应的调整,因为红黑树有自己必须要满足的5种性质,普通的删除可能会破坏原本红黑树的一些性质,那么就需要进行相应的调整。那么我们首先来回顾一下普通的删除到底是怎么操作的。大致思路就是找到要删除的节点然后对它进行删除操作。 对于要删除的节点主要分为三种情况:要删除的节点是叶子节点要删除的节点只有一个孩子要删除的节点有两个孩子为了说明该怎么删原创 2020-06-21 00:30:03 · 410 阅读 · 0 评论 -
红黑树的插入
红黑树的插入我们先来回顾一下二叉吧查找树的插入,二叉查找树的插入主要就分为如下步骤:查找到要插入的key的位置如果key已经存在,那么就什么也不做如果key不存在,就插入新的节点。对于红黑树而言,1和2步都和普通的二叉查找树的插入没有分别。而当新的节点插入时,就可能会破坏红黑树的特性。因此需要通过一定的步骤来调整使其重新满足红黑树的特性。在此我们先来回顾一下红黑树的5个特性:每个节点或者是黑色、或者是红色。根节点的颜色是黑色。每个叶子节点是黑色。(这里的叶子节点是为空NIL的叶子节点原创 2020-06-21 00:29:32 · 183 阅读 · 0 评论 -
红黑树
红黑树概念红黑树是一种特殊的二叉查找树。红黑树上的每个节点都有存储位表示节点的颜色(红或者黑)。**红黑树的效率要非常接近与平衡二叉树。**在c++的模版中的map就是基于红黑树来实现的。我的具体代码的实现在我的github上,有兴趣的同学可以参考一下。红黑树有如下特性:每个节点或者是黑色、或者是红色。根节点的颜色是黑色。每个叶子节点是黑色。(这里的叶子节点是为空NIL的叶子节点)如果节点是红色的,那么他的子节点必是黑色的。从一个节点到该节点下的叶子节点的所有路径上包含相同数目的黑色节点原创 2020-06-21 00:29:00 · 147 阅读 · 1 评论