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。

  • 相关阅读:
    趁热讲讲skin.xml支持的标签和attributes
    如何配置和编译ogre 1.7.0 + cegui 0.7.1
    关于OGRE基础教程6中CEGUI的layout文件can not locate的问题
    skin.xml皮肤配置讲解
    OCX控件注册相关(检查是否注册,注册,反注册)
    重回博客园继续我的 GUI库
    窗口类的定义
    UI库需要完成的任务
    屏幕截图代码
    深入C++的默认构造函数1
  • 原文地址:https://www.cnblogs.com/huangshen/p/13388222.html
Copyright © 2011-2022 走看看