美文网首页
算法之红黑树

算法之红黑树

作者: 光明左使杨逍 | 来源:发表于2018-07-11 15:13 被阅读0次

JDK1.8引入了红黑树(HashMap,CurrentHashMap)

红黑树是一个平衡的二叉树,但不是一个完美的平衡二叉树。虽然我们希望一个所有查找都能在~lgN次比较内结束,但是这样在动态插入中保持树的完美平衡代价太高,所以,我们稍微放松逛一下限制,希望找到一个能在对数时间内完成查找的数据结构。这个时候,红黑树站了出来。 

阅读以下需要了解普通二叉树的插入以及删除操作。 

红黑树是在普通二叉树上,对没个节点添加一个颜色属性形成的,同时整个红黑二叉树需要同时满足一下五条性质 

红黑树需要满足的五条性质: 

性质一:节点是红色或者是黑色; 

在树里面的节点不是红色的就是黑色的,没有其他颜色,要不怎么叫红黑树呢,是吧。 

性质二:根节点是黑色; 

根节点总是黑色的。它不能为红。 

性质三:每个叶节点(NIL或空节点)是黑色; 

这个可能有点理解困难,可以看图: 

从根节点出发,到叶子节点每条路径上黑色节点数目相同。

性质四:每个红色节点的两个子节点都是黑色的(也就是说不存在两个连续的红色节点); 

这五条性质约束了红黑树,可以通过数学证明来证明,满足这五条性质的二叉树可以将查找删除维持在对数时间内。 

当我们进行插入或者删除操作时所作的一切操作都是为了调整树使之符合这五条性质。 

相关文章

  • 红黑树笔记

    红黑树:R-B Tree [toc]参考:红黑树(一)之 原理和算法详细介绍红黑树(五)之 Java的实现 1 简...

  • 数据结构与算法-AVL 红黑树

    AVL树AVL树 算法红黑树红黑树 B站

  • (313)红黑树-java实现

    引言 根据《算法》第4版。编写红黑树。 理论 参见: 浅谈算法和数据结构: 八 平衡查找树之2-3树 浅谈算法和数...

  • 算法之红黑树

    JDK1.8引入了红黑树(HashMap,CurrentHashMap) 红黑树是一个平衡的二叉树,但不是一个完美...

  • 算法之红黑树

    1.基本特性 1.基本特性 节点非红即黑 红色节点的孩子节点是黑色 叶子节点是黑色 每个节点到叶子节点的黑色节点个...

  • 彻底理解红黑树(二)之 插入

    彻底理解红黑树(一)之 二叉搜索树彻底理解红黑树(二)之 插入彻底理解红黑树(三)之 删除 前言 红黑树的插入情况...

  • 彻底理解红黑树(三)之 删除

    彻底理解红黑树(一)之 二叉搜索树彻底理解红黑树(二)之 插入彻底理解红黑树(三)之 删除 前言 红黑树的删除情况...

  • 红黑树专题

    0.目录 1.算法导论的红黑树本质上是2-3-4树 2.红黑树的结构和性质 3.红黑树的插入 4.红黑树的删除 5...

  • 红黑树

    首先说明一点,这里实现的红黑树,和《算法》(第四版)里面的算法是一样的,不是按照《算法导论》里面的红黑树算法写的。...

  • 算法+红黑树

    参考下面博客,侵删 目录1 红黑树的介绍2 红黑树的应用 3 红黑树的时间复杂度和相关证明4 红黑树的基本操作(...

网友评论

      本文标题:算法之红黑树

      本文链接:https://www.haomeiwen.com/subject/oouhpftx.html