zoukankan      html  css  js  c++  java
  • 【数据结构第四周】树知识点整理(下)【平衡二叉树】

    1、什么是平衡二叉树

     平衡因子(Balance Factor,简称BF):BF(T)=HL-HR,

    HL和HR分别代表树T的左右子树的高度

    平衡二叉树(Balanced Binary Tree)(AVL树)

    空树,或者任一结点的左右子树的高度差的绝对值不超过1

    假设nh是高度为h的平衡二叉树的最小结点数,则

    2、平衡二叉树的调整

    首先我们把平衡因子被破坏的结点称为“发现者”,而造成这种破坏的结点称为“麻烦结点”。

     发生不平衡需要调整的情况有下面四种:

    (1)对某结点的右儿子的右子树进行了一次插入。 即麻烦结点在发现者的右子树的右边。(右右旋转)

      处理方法是把被破坏的结点的右子树上移一层,其他需要调整的结点按照AVL树的性质(左小右大)挂上去。

      举个例子:

     

     再举个例子:

    (2)对某结点的左儿子的左子树进行了一次插入。即麻烦结点在发现者的左子树的左边。(左左旋转)

      处理方法是把被破坏者的左儿子上移一层变为父亲结点,被破坏者变成右儿子,其他需要调整的结点按照AVL树的性质(左小右大)挂上去。

    (3)对某结点的左儿子的右子树进行了一次插入。即麻烦结点在发现者的左子树的右边。(左右旋转)

    (4)对某结点的右儿子的左子树进行了一次插入。即麻烦结点在发现者的右子树的左边。(右左旋转)

  • 相关阅读:
    QT UAC问题汇总贴
    被动的流氓
    Web前端优化需要注意的点
    VS快捷键
    延时过程中要加上app.processEvents(),进度条里也要加上这句
    Nim语言:Pascal的语法,Python的缩进
    QString转换成LPCWSTR
    Pascal编译器大全(非常难得)
    WCF学习心得----(三)服务承载
    SafeSEH原理及绕过技术浅析
  • 原文地址:https://www.cnblogs.com/acmsummer/p/4222961.html
Copyright © 2011-2022 走看看