码迷,mamicode.com
首页 > 其他好文 > 详细

红黑树(Red Black Tree)

时间:2019-11-10 17:20:23      阅读:90      评论:0      收藏:0      [点我收藏+]

标签:计算   元素   实现   高度   不能   color   black   高效   特定   

简介

  红黑树(Red Black Tree) 是一种自平衡二叉查找树,是在计算机科学中用到的一种数据结构,典型的用途是实现关联数组(又称为映射 Map)。红黑树和平衡树(AVL)类似,都是在进行插入和删除操作时通过特定操作保持二叉查找树(BST)的平衡,从而获得较高的查找性能。它虽然是复杂的,但它的最坏情况运行时间也是非常良好的,并且在实践中是高效的: 它可以在O(log n)时间内做查找,插入和删除,这里的 n 是树中元素的数目。

性质

  红黑树是每个节点都带有颜色属性的二叉查找树,颜色或红色或黑色。在二叉查找树强制一般要求以外,对于任何有效的红黑树增加了以下的额外要求:

  • 节点是红色或黑色。
  • 根节点是黑色。
  • 每个红色节点的两个子节点是黑色的。(从根节点到每个叶子的所有路径上不能有两个连续的红色)
  • 从任一节点到其每个叶子的所有路径都包含相同数目的黑色节点

  这些约束强制了红黑树的关键性质:从根到叶子的最长的可能路径不多于最短的可能路径的两倍长。结果是这个树大致上是平衡的。因为操作比如插入、删除和查找某个值的最坏情况时间都要求与树的高度成比例,这个在高度上的理论上允许红黑树在最坏情况下都是高效的,而不同于普通的二叉查找树。

红黑树(Red Black Tree)

标签:计算   元素   实现   高度   不能   color   black   高效   特定   

原文地址:https://www.cnblogs.com/zlxyt/p/11830664.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!