红黑树高度上限(2lg(n+1)证明.

UTF8gbsn

红黑树介绍

红黑树是一颗二叉树,并满足以下属性.

  1. 每一个节点要么红色要么黑色.

  2. 根节点是黑色.

  3. 所有叶子节点NIL是黑色.

  4. 红色节点的左右孩子必定是黑色节点.

  5. 从任何一个节点出发,并达到这个节点下面的所有叶子节点的所有路径.这些路径中,含有的黑色节点个数相同.

高度

今天我们要说的是如果一颗含有n个内部节点的红黑树.它的最大高度是多少?

2 l g ( n + 1 ) 2lg(n+1) 2lg(n+1)

其中 l g lg lg是以2为底的对数.

证明

  • 首先根据性质我们可以知道一颗红黑树中,任何你个节点x的左子树和右子树各自含有多少个黑色的节点.根据性质5,他们含有的黑色节点数应该相等.而且和父节点含有的节点数之间的关系是相等或-1的关系.

  • 假设我们用bh(x)来表示二叉树当前节点到叶节点所含有的黑色节点个数(不含当前节点).那么可以知道节点x的左子树和右子树的任何一条到叶子节点的路径都含有的黑色节点数为 b h ( x ) bh(x) bh(x) b h ( x ) − 1 bh(x)-1 bh(x)1

  • 由此可见一个红黑树的节点数至少含有 2 b h ( t ) − 1 2^{bh(t)}-1 2bh(t)1个.其中t是这颗红黑树的根节点.

  • 又因为 b h ( t ) bh(t) bh(t)和二叉树整体高度 h ( t ) h(t) h(t)含有一定的关系.这个关系式 h ( t ) / 2 ⩽ b h ( t ) h(t)/2\leqslant bh(t) h(t)/2bh(t)(由红黑树的性质4可得).这样算来可以获得不等式
    n ⩾ 2 b h ( t ) − 1 ⩾ 2 h ( t ) 2 − 1 n\geqslant 2^{bh(t)-1}\geqslant 2^{\frac{h(t)}{2}}-1 n2bh(t)122h(t)1 由此推出
    h ( t ) ⩽ 2 l g ( n + 1 ) h(t)\leqslant 2lg(n+1) h(t)2lg(n+1)

于是原式得证.

  • 6
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 23
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 23
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值