zoukankan      html  css  js  c++  java
  • 平衡二叉树-----失衡的情况

    平衡二叉树---失衡情况

    基本介绍

    平衡二叉树也叫平衡二叉搜索树(Self-balancing binary search tree)又被称为AVL树, 可以保证查询效率较高

    具有以下特点:它是一 棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。平衡二叉树的常用实现方法有红黑树AVL替罪羊树Treap伸展树等。

    二叉树的四种不平衡情况

    左左型LL

    左右型LR

    右左型RL

    右右型RR

    1.LL:称为"左左"。插入或删除一个节点后,根节点的左子树的左子树还有非空子节点,导致"根的左子树的高度"比"根的右子树的高度"大2,导致AVL树失去了平衡。

    例如,在上面LL情况中,由于"根节点(7)的左子树(5)的左子树(3)还有非空子节点",而"根节点(7)的右子树(8)没有子节点";导致"根节点(7)的左子树(5)高度"比"根节点(7)的右子树(8·)"高2。

    2.LR:称为"左右"。插入或删除一个节点后,根节点的左子树的右子树还有非空子节点,导致"根的左子树的高度"比"根的右子树的高度"大2,导致AVL树失去了平衡。

    例如,在上面LR情况中,由于"根节点(7)的左子树(4)的右子树(6)还有非空子节点",而"根节点(7)的右子树8)没有子节点";导致"根节点(7)的左子树(4)高度"比"根节点(7)的右子树(8)"高2。

    3.RL:称为"右左"。插入或删除一个节点后,根节点的右子树的左子树还有非空子节点,导致"根的右子树的高度"比"根的左子树的高度"大2,导致AVL树失去了平衡。

    例如,在上面RL情况中,由于"根节点(7)的右子树(8)的左子树(6)还有非空子节点",而"根节点(7)的左子树(4)没有子节点";导致"根节点(7)的右子树(8)高度"比"根节点(7)的左子树(4)"高2。

    4.RR:称为"右右"。插入或删除一个节点后,根节点的右子树的右子树还有非空子节点,导致"根的右子树的高度"比"根的左子树的高度"大2,导致AVL树失去了平衡。

    例如,在上面RR情况中,由于"根节点(7)的右子树(8)的右子树(10)还有非空子节点",而"根节点(7)的左子树(4)没有子节点";导致"根节点(7)的右子树(8)高度"比"根节点(7)的左子树(4)"高2。

  • 相关阅读:
    CSP 2020 提高组第一轮
    初赛胡扯
    Sublime安装SublimeServer插件开启本地服务器
    Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: No "exports" main defined in XXX ode_modules@babelhelper-compilation-targetspackage.json
    Vue解决less-loader报错 TypeError: this.getOptions is not a function
    Vue-cli项目关闭eslint检查
    Typora添加主题
    Oracle存储过程中EXECUTE IMMEDIATE 执行结果是空时怎么继续执行
    存储过程--异常捕获
    git和github的基本使用(2)
  • 原文地址:https://www.cnblogs.com/huangshen/p/13388222.html
Copyright © 2011-2022 走看看