Red-Black Tree


红黑树

前段时间看到STL map使用的数据结构是红黑树,研究了一下。

红黑树的由来

红黑树是二叉查找树的升级版本。二叉树只是平均树深为O(lg(n)),但是无法保证树深h一定是O(lg(n))。这就是红黑树发明的原因。红黑树为每个node增加一个bit,为color:red or black。

红黑树的属性

  1. 节点只有两种颜色:黑的和红的
  2. 根一定为黑色
  3. 叶节点(NIL)一定是黑的
  4. 红节点的两个孩子一定是黑的
  5. 每条到叶子节点的路径,所经过的黑色节点数(black height)一定都是相同的。

红黑树的深度

红黑树保证最大深度为2 lg(n+1),其中n为节点数。这吊炸天,二叉查找树的最坏情况为O(n),而红黑树做到了O( lg n)。至今仍然无法从直观上得到理解,只是加了颜色,即可获得这么好的属性,真是十分神奇。当然了,实现起来要麻烦很多了,INSERT和DELETE实现起来要比二叉查找树难。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 树(tree)的基本知识 一.定义 树是一种抽象数据类型,或是实作这种抽象数据类型的数据结构,用来模拟具有树状结构...
    337b94dc718f阅读 12,126评论 3 42
  • 1. 简介 红黑树(Red Black Tree) 是一种自平衡二叉查找树,是二叉查找树的变种之一。它是在1972...
    谢朴欢阅读 4,868评论 0 8
  • 1、红黑树介绍 红黑树又称R-B Tree,全称是Red-Black Tree,它是一种特殊的二叉查找树,红黑树的...
    文哥的学习日记阅读 13,357评论 1 35
  • 原文出处:http://www.cnblogs.com/maybe2030/p/4715035.html引文出处:...
    明教de教主阅读 13,012评论 0 7
  • 你喜欢过一个人么?你分得清何为欣赏?何为好奇?何为不切实际么? 突然有一天你的生活里出现了那么一个男生,他高大,潇...
    by_M阅读 1,297评论 0 1

友情链接更多精彩内容