• 关于红黑树


    1 理解左旋和右旋

     旋转是相对于所选定的两个节点及其兄弟节点构成的三角形而言的,左旋转就是这两个节点构成的边向左旋转到了另外一条边,而右旋转就是这两个节点够的边向右旋转到了另外一条边上。旋转成功了之后,当了父亲的儿子多出来的一条边就给了原来的父亲。 

    旋转的步骤:

    第一步,选定要进行旋转的两个节点,父亲和儿子。

    第二步,父亲、儿子和父亲的另外一个儿子(没有就虚构一个),三个人构成一个三角形;

    第三步,左旋转就是父亲和儿子构成的边向左旋转到另外一条边上,右旋转就是父亲和儿子构成的边向右旋转到另外一条边上。

    2 红黑树的5个特征

    颜色限制:只有两种颜色,红色和黑色。

    根和叶子节点限制:黑色。

    对所有红色节点的限制:红色节点的子节点都是黑色节点。

    对所有黑色节点的限制:任意节点到叶子节点的路径上的黑色节点的数目是相同的。

    3 红黑树的平衡插入

    新插入的节点设置为红色。因为原来的树是满足条件的红黑树,即任意节点到叶子节点的路径上的黑色节点的数目是相同的。如果插入了黑色,那么这条性质就违反了。插入红色的话,尽管可能违反红色节点的子节点都是黑色节点,但是可以通过调换父子节点的颜色来调整。

    具体参考相应的代码。 

    4 红黑树的平衡删除

    具体参考相应的代码。

  • 相关阅读:
    Linux基础知识--目录操作
    Linux基础知识--命令的基础知识
    Linux基础知识--磁盘分区和目录结构
    PO设计模式
    SSL连接形式发送邮件
    已附件的形式发送测试报告
    Python+selenium+HTMLTestRunner邮件形式发送测试报告
    Python随笔13
    Python随笔12
    Python随笔11
  • 原文地址:https://www.cnblogs.com/hustdc/p/10937869.html
Copyright © 2020-2023  润新知