红黑树(Red–black tree)

一、红黑树的概念:

  • 在计算机科学中,红黑树是一种自平衡二叉搜索树。每个节点存储一个表示“颜色”(“红”或“黑”)的额外位,用于确保树在插入和删除期间保持平衡。
  • 当树被修改时,新树被重新排列和“重新绘制”以恢复着色属性(整个树的红黑结点会重新进行绘制,以适应红黑树的颜色排列规则),这些属性限制了树在最坏情况下的不平衡程度。属性的设计使得这种重新排列和重新排序可以有效地执行。
  • 重新平衡不是完美的(不能像平衡二叉树一样绝对平衡,只能做到相对平衡),但保证了搜索的时间,其中是树的节点数。插入和删除操作以及树的重新排列和重新排序也会及时执行。

二、红黑树的特征:

  1. 每个结点要么是黑色,要么是红色
  2. 根结点是黑色的
  3. 所有叶子结点都是黑色的空节点(NIL结点)
  4. 如果一个结点是红色的,那么它的子结点都是黑色
  5. 从给定节点到其NIL 的每条路径都经过相同数量的黑色结点
  6. 不可能有连在一起的红色结点

红黑树的叶子结点(NIL结点)是不包含键或数据,通常黑色的指向NULL指针。有时候为了节省执行时间,也有可能指向一个唯一的哨兵结点指针。

  • 作用: 始终平衡树,例如每个父级有两个孩子。如果它没有得到适当的平衡,在最坏的情况下,它会退化成一个链表,没有获得红黑树的好处。
  • 平衡黑色高度,当你删除一个节点时,黑色高度会立即传递给孩子。

哨兵节点:是一个专门指定的节点,与链表和树一起用作遍历路径终止符。这种类型的节点不保存或引用由

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
红黑树Red-Black Tree)是一种自平衡的二叉查找树,具有良好的平衡性质。 红黑树在每个节点上增加了一个额外的属性来存储节点的颜色,可以是红色或黑色。红黑树必须满足以下五个性质: 1. 每个节点都有一个颜色,要么红色,要么黑色。 2. 根节点是黑色的。 3. 所有叶子节点(NIL节点)都是黑色的。 4. 如果一个节点是红色的,则它的两个子节点都是黑色的。 5. 对于每个节点,从该节点到其所有后代叶子节点的简单路径上,均包含相同数量的黑色节点。 这些性质保证了红黑树的平衡性,并且使得最长路径不超过最短路径的两倍。 红黑树的基本操作包括插入、删除和查找。插入操作通过调整节点颜色以及旋转来保持树的平衡;删除操作通过调整节点颜色以及旋转来保持树的平衡,并且在删除节点后需要考虑如何保持红黑树的性质。查找操作沿着树进行比较,最终找到目标节点或者确定目标节点不存在于树中。 红黑树的时间复杂度为O(log n),其中n为树中节点的个数。因此,红黑树在需要频繁地插入、删除和查找元素的情况下,能够保持较好的性能。 红黑树广泛应用于操作系统中的进程调度、文件系统的数据存储等领域,在STL中也有着重要的应用。它是一种非常重要且高效的数据结构,在算法和数据结构领域具有重要的研究价值和应用前景。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值