首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

【从二树到黑树】清晰理解黑树的演变---黑的含义

黑树就是一种平衡树,它可以保证二树基本符合矮矮胖胖的结构,但是理解黑树之前,必须先了解另一种树,叫2-3树,黑树背后的逻辑就是它。 好吧来看2-3树吧。...借一张别人的图来看: 链接放平: 所以,黑树的另一种定义是满足下列条件的二查找树: ⑴链接均为左链接。 ⑵没有任何一个结点同时和两条链接相连。...黑树 注:黑数是平衡二树的一种,插入时遵循二树“左右”定律: 该父节点的左子节点:为小于父节点中且子树中最接近父节点值得数。 该父节点的右子节点:为大于父节点中且子树中最接近父节点值得数。...R-B Tree简介 R-B Tree,全称是Red-Black Tree,又称为“黑树”,它一种特殊的二查找树。...因而,黑树是相对是接近平衡的二树。 黑树示意图如下: 黑树的应用 黑树的应用比较广泛,主要是用它来存储有序的数据,它的时间复杂度是O(lgn),效率非常之高。

70841

【从二树到黑树】清晰理解黑树的演变---黑的含义

黑树就是一种平衡树,它可以保证二树基本符合矮矮胖胖的结构,但是理解黑树之前,必须先了解另一种树,叫2-3树,黑树背后的逻辑就是它。 好吧来看2-3树吧。...所以,黑树的另一种定义是满足下列条件的二查找树: ⑴链接均为左链接。 ⑵没有任何一个结点同时和两条链接相连。...黑树 注:黑数是平衡二树的一种,插入时遵循二树“左右”定律: 该父节点的左子节点:为小于父节点中且子树中最接近父节点值得数。 该父节点的右子节点:为大于父节点中且子树中最接近父节点值得数。...R-B Tree简介 R-B Tree,全称是Red-Black Tree,又称为“黑树”,它一种特殊的二查找树。...因而,黑树是相对是接近平衡的二树。 黑树示意图如下: ? 黑树的应用 黑树的应用比较广泛,主要是用它来存储有序的数据,它的时间复杂度是O(lgn),效率非常之高。

2.2K10

Data Structure前情提要——二黑树

前情提要——二树 二树之前已经提到过,二树这种数据结构只能有两个子数,一左一右。 ?...二树的节点一定会大于左节点的值小于右节点的值,每一个节点都要满足,所有每一个节点下面拿出来的树都可以作为一个二树。既然有大于等于了,那么这科树的元素一定要有可比较性才可以。...这个时候就要使用黑树了,黑树其实也是一种二树,只不过是增加了某种特性的二树。如果在插入或删除的时候如果出现了不平衡的状态,那么就要进行调整,保持树的平衡。...黑树的特征 首先每一个节点都有颜色,在删除和添加的过程中是需要保持这些颜色的排列规律。 黑树的规则 1.每一个节点不是红色就是黑色。 2.根节点总是黑色。...所以黑树的插入算法就需要做出改变,插入的时候前面的步骤是一样的,从根节点向下查找要插入的位置,插入节点之后,后面就需要添加检测树的操作,检测这个树是否是黑树了,如果不是,那么就要进行修正。

40030

完全平衡二树、黑树的区别

首先黑树是不符合AVL树的平衡条件的,即每个节点的左子树和右子树的高度最多差1的二查找树。...黑树的 查询性能略微逊色于AVL树,因为他比avl树会稍微不平衡最多一层,也就是说黑树的查询性能只比相同内容的avl树最多多一次比较,但是,黑树在插入和删除上完爆avl树, avl树每次插入删除会进行大量的平衡度计算...,而黑树为了维持黑性质所做的黑变换和旋转的开销,相较于avl树为了维持平衡的 开销要小得多。...在实际的系统中,例如,需要使用动态规则的防火墙系统,使用黑树而不是散列表被实践证明具有更好的伸缩性。典型的用途是实现关联数组。 2. AVL树是最先发明的自平衡二查 找树。...引入二树的目的是为了提高二树的搜索的效率,减少树的平均搜索长度.为此,就必须每向二树插入一个结点时调整树的结构,使得二树搜索保持平衡,从而可能降低树的高度,减少的平均树的搜索长度。

49910

完全二树,满二树,平衡二树,搜索二树,黑树

满二树: 除最后一层无任何子节点外,每一层上的所有结点都有两个子结点 完全二树: 完全二树是由满二树而引出来的。...如下图 满二树都是完全二树 完全二树依次填满直至满二树的阶段,每一个树都是完全二树 二搜索树 它是一种节点值之间具有一定数量级次序的二树,对于树中每个节点: 若其左子树存在,则其左子树中每个节点的值都不大于该节点值...黑树 黑树大值定义和平衡二树相同,但是具有以下几个特点 性质1. 节点是红色或黑色。 性质2. 根节点是黑色。 性质3 每个红色节点的两个子节点都是黑色。...详情点击参考链接https://www.jianshu.com/p/1bbb19156454 黑树和平衡二树的区别 1.黑树放弃了追求完全平衡,追求大致平衡,在与平衡二树的时间复杂度相差不大的情况下...黑树颜色的作用 黑树使用黑二色进行“着色”,目的是利用颜色值作为二树的平衡对称性的检查,只要插入的节点“着色”满足黑二色的规定,最短路径与最长路径不会相差的太远,黑树的节点分布就能大体上达至均衡

64750

黑树与平衡二树_理解黑树很难?不存在的,史上最详细的黑树图解

首先来看看什么是二搜索树和平衡二树。...二搜索树(BST):对于二树的任意一个节点来说,这个节点的左子树都比它小,右子树都比它大,如下图所示,二搜索树有个不好的地方,就是当插入的节点都比前一个插入的节点大或小时,此时就会退化成了一条线性的存储结构了...平衡二树(AVL):平衡二树也是一个二搜索树,但是平衡二树有个约束条件,就是任意一个节点的左子树和右子树的深度差小于等于1,这样能有效避免上面提到的二搜索树退化成线性的情况了,平衡二树的搜索要么查找到当前节点就是目标节点...但是如果新插入的是节点且它的父节点是黑节点的话,那就直接插入,整棵树还是平衡的,就不需要再做平衡处理了) 黑树的时间复杂度 从上面平衡二树中我们知道,平衡二树的任意节点的左右子树的深度相同或者差...O(logn),但是黑树却拥有更宽松的条件,这也是为什么黑树用的比平衡二树多的重要原因。

70231

面试官:了解二树吗,平衡二树,黑树?

黑树 对于那种频繁删除、插入的场景,平衡二树的调整过程显然是存在性能问题的,所以为了解决这个问题,进而又引入了黑树。 黑树的特点: 具有二树所有特点。 每个节点只能是红色或者是黑色。...正是因为这种特点,黑树不同于平衡树的操作,黑树不会因为插入、删除等操作追求绝对的平衡,它的旋转次数少,插入最多两次旋转,删除最多三次旋转,所以对于搜索、插入、删除操作较多的情况下,黑树的效率是优于平衡二树的...所以为了解决二查找树退化为链表的情况,引入了平衡二树,即: 平衡二树是为了解决二树退化成一棵链表而诞生的。 既然有了平衡二树,这下总没有问题了吧? 为什么有了平衡二树还要引入黑树?...平衡二树追求绝对严格的平衡,平衡条件必须满足左右子树高度差不超过1,黑树是放弃追求完全平衡,它的旋转次数少,插入最多两次旋转,删除最多三次旋转,所以对于搜索、插入、删除操作较多的情况下,黑树的效率是优于平衡二树的...黑树是终结吗? 时代总是进步的,大胆猜测不会是,就跟当初从数组、链表到二树一样。

3.4K00
领券