一 概念 R B Tree,全称是Red Black Tree又称红黑树,它是一种特殊的二叉查找树,红黑树的每个节点上都有存储位表示节点的颜色,可以是红或黑。 二 特性 每个节点或者是红色,或者是黑色 根节点是黑色的 每个叶子节点 NIL 是黑色的。注意:这里的叶子节点,是指为空的叶子节点 如果一个节点是红色的,则它的子节点必须是黑色的 从任意一个节点到其叶子的所有路径中,所包含的黑节点数量是相同 ...
2019-10-22 08:59 1 949 推荐指数:
前言 最近断断续续花了一个礼拜的时间去看红黑树算法,关于此算法还是比较难,因为涉及到诸多场景要考虑,同时接下来我们要讲解的HashMap、TreeMap等原理都涉及到红黑树算法,所以我们不得不了解其原理,关于一些基础知识这里不再讲解,本文参考博文:《https://www.cnblogs.com ...
转载自https://www.cnblogs.com/liyuan989/p/4071942.html 感觉写的非常好 前言 红黑树是特殊二叉查找树的一种,一棵红黑树有以下5种性质: 根节点为黑色。 每个节点不是黑色就是红色。 每个红色节点的两个儿子一定是黑色。 所有 ...
红黑树及其插入与删除操作[未完待续] 红黑树的定义 红黑树是一种自平衡二叉查找树。它相比于平衡二叉树的优点在于,其的特性可以让其在任何条件下保持树的高度小于等于log n,所以其即使在最坏条件下对于增删查改这样的基本操作也能保持O(log n)的时间复杂度;另外,相比于严格平衡的AVL树 ...
- 红黑树:红黑树是一种二叉平衡树,二叉查找树,它牛逼之处就在于它足够的平衡,可以达到高度至多2lg(n+1),所以在java中的treemap和c++ set, multiset, map, multimap就使用的红黑树。 - 红黑树的性质:1. 结点分为红色和黑色两种 2.根 ...
模板图 二叉查找树 由于红黑树本质上就是一棵二叉查找树,所以在了解红黑树之前,咱们先来看下二叉查找树。 二叉查找树(Binary Search Tree),也称有序二叉树(ordered binary tree),排序二叉树(sorted binary tree),是指一棵空树或者具有 ...
删除 因为根据BST中的规则,选择该结点的左子树中最大值和右子树中最小值替代掉原本要删除的点的值,再将改点删掉即可,所以这里只会讨论那个删掉的点。 分为以下情况: 删除结点的左右子结点均为空,则将其直接删除即可; 删除结点的左右子结点其中一方为空,则将存在的那一方的子结点替代掉删除 ...
红黑树的删除分两个部分介绍,第一个部分介绍节点的删除;第二部分介绍在将节点删除后对红黑树的调整,使得其能符合红黑树的性质。 1、节点的删除 假如要删除的节点为z,这时,有三种情况: 1)节点z没有孩子节点,这时直接将z节点删除,然后判断节点z是否为黑色 ...