码迷,mamicode.com
首页 > 编程语言 > 详细

【算法导论】第13章,红黑树

时间:2018-08-07 00:28:07      阅读:115      评论:0      收藏:0      [点我收藏+]

标签:key   val   bsp   路径   一个   n+1   动态   子节点   删除   

红黑树是一种“平衡的”查找树,能确定动态集合操作时间为O(logn)

 

13.1 红黑树的性质

 

红黑树的每个节点除了 key, value, p, left, right之外,还有color, 

有value的都视为内节点,如果没有儿子,认为儿子都是NIL,

 

红黑性质:
1、每个节点要么红要么黑

2、根节点黑

3、叶子节点(NIL)黑

4、如果节点为红,那么儿子为黑

5、从任意节点出发,下面任意一条路径,黑节点个数都相同。

 

机智处理

NIL节点指向同一个位置,其value为NIL,p, left, right的定义并不重要。

 

整个树任意一条路径黑色节点的个数叫做黑高度。

定理:n个节点的红黑树高度至多为2log(n+1)

 

13.2 旋转

插入和删除元素,可能会导致红黑性质改变,为了维持红黑性质,可以旋转。

左旋和右旋:

左旋:左父右子 到 右父左子: 

右旋:右父左子 到 左父右子:

 

13.3 插入

13.4 删除

【算法导论】第13章,红黑树

标签:key   val   bsp   路径   一个   n+1   动态   子节点   删除   

原文地址:https://www.cnblogs.com/yesuuu/p/9428009.html

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