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

红黑树( Red-Black Tree ) - 笔记

时间:2018-04-08 22:36:03      阅读:187      评论:0      收藏:0      [点我收藏+]

标签:父节点   应用   连续   red   大于   不同的   元素   场景   恢复   

1.  红黑树属性:根到叶子的路径中,最长路径不大于最短路径的两倍。

2. 红黑树是一个二叉搜索树,并且有

  a. 每个节点除了有左、右、父节点的属性外,还有颜色属性,红色或者黑色。

  b. ( 根属性 ) 红黑树的根只能是黑色

  c. ( 红色属性 ) 红色节点的子节点只能是黑色

  d. ( 黑色属性 ) 从给定的节点到其后代叶子节点的每一条路径上,出现的黑色节点数目一样。其中,从某个节点到其后代叶子节点的路径上出现的黑色节点数,被称为该节点的黑高度( black-height )。

3. 红黑树上的查找、输出操作和在二叉搜索树上相同。二叉搜索的插入、删除操作应用到红黑树后,可能打破上面提到的红黑树特性。如果打破了,需要调整结构来恢复红黑树的特性。

4. 插入,每次插入的节点都标示为红色,可能出现两个连续红色节点,以至于打破红色属性。若是打破了,根据叔节点( 父节点的兄弟节点 )的颜色,采用不同的调整方式。

删除,删除的节点如果是红色,不会打破特性;如果是黑色,可能改变其他节点的黑高,打破黑色属性。若是打破了,同样需要分情况,采用不同的调整方式。

插入操作、删除操作的具体实现,尚未读透,有需要再深入理解。

 

应用场景:Java HashMap 在处理大量 hash 值冲突时,采用红黑树结构存储冲突的元素,提高性能。

 

红黑树( Red-Black Tree ) - 笔记

标签:父节点   应用   连续   red   大于   不同的   元素   场景   恢复   

原文地址:https://www.cnblogs.com/Pjson/p/8747471.html

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