zoukankan      html  css  js  c++  java
  • 平衡二叉树结构 AVL

    它是在BST的基础上又加了限制条件,限制任一结点的左右子树的高度差不能大于1.也就是说AVL看起来要更加规整。 索引 若理想情况--左右子树高度相等,其搜索时间复杂度为log(N),若不理想--线性树,时间复杂度变为O(N)。 AVL平衡失控的原因是因为加入了新结点。它有四种失衡状态: 索引 AVL树失去平衡之后,可以通过旋转使其恢复平衡。下面分别介绍四种失去平衡的情况下对应的旋转方法。 LL的旋转。LL失去平衡的情况下,可以通过一次旋转让AVL树恢复平衡。步骤如下:
    1. 将根节点的左孩子作为新根节点。
    2. 将新根节点的右孩子作为原根节点的左孩子。
    3. 将原根节点作为新根节点的右孩子。
    LL旋转示意图如下: 索引 RR的旋转:RR失去平衡的情况下,旋转方法与LL旋转对称,步骤如下:
    1. 将根节点的右孩子作为新根节点。
    2. 将新根节点的左孩子作为原根节点的右孩子。
    3. 将原根节点作为新根节点的左孩子。
    RR旋转示意图如下: 索引 LR的旋转:LR失去平衡的情况下,需要进行两次旋转,步骤如下:
    1. 围绕根节点的左孩子进行RR旋转。
    2. 围绕根节点进行LL旋转。
    LR的旋转示意图如下: 索引 RL的旋转:RL失去平衡的情况下也需要进行两次旋转,旋转方法与LR旋转对称,步骤如下:
    1. 围绕根节点的右孩子进行LL旋转。
    2. 围绕根节点进行RR旋转。
    RL的旋转示意图如下: 索引
  • 相关阅读:
    X3850M2安装CertOS 7 KVM 2--Mount
    X3850M2安装CertOS 7 KVM 2--VNC
    X3850M2安装CertOS 7 KVM
    vs2012 opencv 配置
    asp.net MVC code first Migrations : Model 同步到DB中
    HyperV采用硬盘拷贝的方式迁移虚拟机后的问题处理
    事后诸葛亮
    个人作业——软件产品案例分析
    冲刺总结随笔
    Alpha第九天
  • 原文地址:https://www.cnblogs.com/ZoHy/p/12400691.html
Copyright © 2011-2022 走看看