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

红黑树

时间:2018-05-19 13:59:03      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:平衡   应用   图片   比较   http   png   map   技术   平衡二叉树   

  红黑树是一个平衡的二叉树,但不是一个完美的平衡二叉树。

  红黑树的应用比较广泛,主要是用它来存储有序的数据,它的时间复杂度是O(lgn),效率非常之高。

  在C++ STL中,很多部分(包括set, multiset, map, multimap)应用了红黑树的变体(SGI STL中的红黑树有一些变化,这些修改提供了更好的性能,以及对set操作的支持)

 

红黑树的特性:

  每个节点是红色或者黑色。

  根节点是黑色。

  每个叶子节点(NIL)是黑色。(这里叶子节点,是指为空(NIL或NULL)的叶子节点!)

  如果一个节点是红色的,则它的子节点必须是黑色的。(也就是说不存在两个连续的红色节点)

  从任一节点到其每个叶子的所有路径都包含相同数目的黑色节点。

 

  这些特性约束了红黑树的关键性质: 从根到叶子的最长的可能路径不多于最短的可能路径的两倍长。结果是这个树大致上是平衡的。

 

技术分享图片

红黑树

标签:平衡   应用   图片   比较   http   png   map   技术   平衡二叉树   

原文地址:https://www.cnblogs.com/mengchunchen/p/9060109.html

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