红黑树详解

由于csdn博客的排版实在是太过麻烦,调来调去的也不好看,故使用线下已经排好的截图来发表

前言:

红黑树是在二叉搜索树的基础上添加了对颜色的处理,故如对二叉树不熟悉的可以先了解上一篇对二叉树的介绍http://blog.csdn.net/a_zhenzhen/article/details/78829892

设红黑树的高为h,则树的黑高最小为h/2; n为红黑树的结点数,则
n >= 2^(h/2)-1
即 n + 1 >= 2^(h/2) -------> lg(n+1)>=h/2 即 h<= 2lg(n+1)

左旋与右旋


左旋伪代码

右旋伪代码

红黑树需要满足的性质

  1. 每个结点或是红色的,或是黑色的
  2. 根结点是黑色的
  3. 每个叶子结点(NIL)都是黑色的
  4. 如果一个结点是红色的,则它的两个子结点都是黑色的。
  5. 对每个结点,从该结点到其所有后代叶结点的简单路径上,均包含相同数目的黑色结点。
红黑树确保没有一条路径会比其他路径长出2倍,因而是 近似于 平衡的

红黑树的插入






红黑树插入的伪代码




红黑树的删除



红黑树删除的伪代码








红黑树修复的伪代码



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值