• 红黑树学习笔记(1)


    博客图片来源

    1 红黑树是一种二叉查找树。

    2 红黑树的性质。

    (1)每个节点是红色或者黑色

    (2)根节点是黑色

    (3)叶节点是黑色(叶节点就是空节点,实际不存储东西)

    (4)每一个红色节点的两个孩子都是黑色节点

    (5)对于每个节点,从该节点到任意后代叶子节点经过的黑色节点数相同。

    (6)满足二叉查找树的性质,即左子树所有键值小于当前节点键值,右子树所有键值大于当前节点键值。

    (7)在满足上面这些条件时,对于有n个内节点(内节点就是不包含叶节点)的红黑树,高度至多为$2log(n+1)$.首先定义一个节点x的黑高为$bh(x)$,表示从x到任意一个叶子节点路径上黑色节点的个数(不包括x)。先证明以某一节点x为根的子树中至少包含$2^{bh(x)}-1$个内节点(不是叶子的都是内节点)。用数学归纳法证明。如果x的高度为0,那么x是叶节点,包含0个内节点,满足该式子。对于高度为正值的x,其两个孩子至少包含$2^{bh(x)-1}-1$个内节点,所以以x为根的子树至少包含$(2^{bh(x)-1}-1)+(2^{bh(x)-1}-1)+1=2^{bh(x)}-1$个内节点。第二步,对于一棵高度为h的树,任意一条从根到叶节点(不包括根)的路径上至少有一半黑色节点,从而$bh(x)geq frac{h}{2}$,所以$ngeq 2^{bh(x)}-1geq 2^{frac{h}{2}}-1$,即$hleq 2log(n+1)$

    下面是一个红黑树的例子。

     

    3 左旋和右旋操作。对x进行左旋之后将变成右边,对y进行右旋之后会变成左边。

    4 后继函数$Successor(u)$为节点$u$的后继结点。后继定义为树中大于该节点的最小的节点。在上图中节21的后继为23,节点17的后继为19,节点23的后继为26.

     

  • 相关阅读:
    debian/ubuntu系统vi无法删除字符的解决办法
    kvm磁盘镜像文件管理,格式转换,调整大小
    读懂MACD背离,多空力量分析
    OpenStack部署都有哪些方式
    [STM32F10x] 利用定时器测量频率
    [STM32F10x] 利用定时器测量脉冲宽度
    曼彻斯特编码
    最近关注的几个技术点网页链接
    windows中cmd常用命令收集
    Mybatis Generator代码自动生成(实体类、dao层、映射文件)
  • 原文地址:https://www.cnblogs.com/jianglangcaijin/p/6010958.html
Copyright © 2020-2023  润新知