红黑树算法分析

1. 红黑树的基本原理

图 1

如图一,N个黑色节点排列,如果把任意多个红色节点插入到这个排列中,要求是不能出现两个红色节点挨在一起,显而易见的是最终这个排列的长度为N到2N+1之间。而红黑树就是通过这个原理控制左右子树的平衡的。(与AVL树相比,这种控制要求相对宽松很多,相同规模下,红黑树要比AVL树高)

2. 红黑树的基本规则

  1. 非黑即红:树节点有红色和黑色两种状态。(不解释)
  2. 昙花一现:两个红色节点不能有父子关系。(基本原理所要求的)
  3. 天下乌鸦一般黑:树的每条贯穿的路径上的黑色节点数相等。(基本原理所要求的,需要注意的是,这一条贯穿路径并不一定是根节点到叶子节点,只要一个节点没有左儿子或没有右儿子,都可以作为贯穿路径的终点。为了方便分析,可以仿照黑红决定,指定空节点为黑,加上空节点后,贯穿路径就是根节点到叶子节点了)
  4. 红黑决定:树的根节点规定为黑。(任何符合上面三个要求的红黑树,倘若根节点为红,都可以不加思索的将根节点涂黑而不违反前三条规则。倘若根节点为黑,这时可不能随随便便涂成红,因为怕它的子节点为红。为了使算法更容易编写,特此决定根节点为黑)</
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值