算法学习13——红黑树

红黑树

红黑树是一棵二叉搜索树,拥有二叉搜索树的性质:左子树的所有值小于根节点,右子树的所有值大于根节点。同时还具有近似平衡性质,近似平衡指的是任何节点的左右子树高度不会超过一半。它相对平衡二叉树的优势在于,任何不平衡都可以在三次之内的旋转解决,而平衡二叉树最坏会达到树的高度级别的旋转次数。

红黑树的性质

红黑树节点除了左节点,右节点,关键字的值三个基本二叉树元素之外,还维护了红黑色作为标记。同时null被定义成为叶子节点,具有关键字的节点被定义成为内部节点。

红黑树通过以下的性质维护红黑特性:

  1. 每个节点是红色的,或者黑色的
  2. 根节点是黑色的
  3. 叶子节点null是黑色的
  4. 如果一个节点是红色的,则它的两个子节点都是黑色的,也就是不能有连续两个红节点
  5. 从任意内部节点出发,到达它的每个叶子节点,每条路径经过的黑色节点的数量是相同的

从某个节点 x x x出发(不包含该节点)到达一个叶节点的任意一条简单路径上的黑色节点个数称为该节点的黑高,记为 h x ( x ) hx(x) hx(x),定义null的黑高为0

红黑树

一个有n个内部节点的红黑树的高度至多是 2 l g ( n + 1 ) 2lg(n+1) 2lg(n+1)

**证明:**先证明以任一节点x为根的子树中至少包含 2 h b ( x ) − 1 2^{hb(x)}-1 2hb(x)1个内部节点。节点x的黑高是 h b ( x ) hb(x) hb(x),这个树拥有最少节点的情况是不具有红节点,那么它的黑高就等同于它的树高。该树的最后一层全是null,因此节点为x的树至少拥有 2 h b ( x ) − 1 2^{hb(x)}-1 2hb(x)1个内部节点。根据性质4,不能有连续两个红节点,因此高度为 h h h的红黑树,黑高至少为 h / 2 h/2 h/2,根据上述证明可得:
n ≥ 2 h b ( x ) − 1 ≥ 2 h / 2 − 1 n\ge 2^{hb(x)}-1 \ge 2^{h/2}-1 n2hb(x)12h/21
由上式可得
n ≥ 2 h / 2 − 1 n + 1 ≥ 2 h / 2 l o g ( n

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值