Chapter11-2-AVL树及其应用-2学时.ppt

  1. 1、本文档共45页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Chapter11-2-AVL树及其应用-2学时

Chapter11 有哪些信誉好的足球投注网站树 章节 11.1 二叉有哪些信誉好的足球投注网站树 11.2 AVL树 11.4 B-树 11.5 应用 1、为什么引入“平衡二叉树” 2、平衡二叉树的定义 平衡树(balanced tree):高度为O(logn)的树 平衡二叉树(balanced binary tree):由阿德尔森一维尔斯和兰迪斯(Adelson-Velskii and Landis)于1962年首先提出的,所以又称为AVL树 平衡二叉树的定义 空二叉树是AVL树;如果T是一棵非空的二叉树,TL和TR分别是其左子树和右子树,那么当T满足以下条件时,T是一棵AVL树: 1)TL和TR 是AVL树; 2)|hL-hR|≤1,hL和hR分别是左子树和右子树的高度 AVL树必须具备的特征 n个元素的AVL树的高度是O(logn) 一棵n元素的AVL有哪些信誉好的足球投注网站树能在O(高度)=O(logn) 的时间内完成有哪些信誉好的足球投注网站 将一个新元素插入到一棵n元素的AVL有哪些信誉好的足球投注网站树中,可得到一棵n+1元素的AVL树,这种插入过程可以在O (logn)时间内完成 从一棵n元素的AVL有哪些信誉好的足球投注网站树中删除一个元素,可得到一棵n-1元素的AVL树,这种删除过程可以在O(logn)时间内完成 3、AVL树的高度 假设Nh是一棵高度为h的AVL树中最小的节点数 可以看到Nh的定义与斐波那契数列的定义非常相似 4、AVL树的平衡因子 为每个节点增加一个平衡因子bf。节点x 的平衡因子bf (x)定义为:bf (x)= hL-hR 即:x的左子树的高度-x 的右子树的高度 从AVL树的定义可以知道,平衡因子的可能取值为-1、0、1 5、AVL树的有哪些信誉好的足球投注网站 如果一棵AVL树有n个结点,其高度可以保持在O(logn),因此平均查找长度也可以保持在O(logn) 二叉有哪些信誉好的足球投注网站树的算法完全适用于AVL树 6、AVL树的插入 若一棵二叉有哪些信誉好的足球投注网站树是平衡二叉树,插入某个结点后,可能会变成非平衡二叉树,这时就可以对该二叉树进行平衡处理,使其变成一棵平衡二叉树 非AVL树的平衡化处理 每插入一个新结点时,AVL树中相关结点的平衡状态会发生改变。因此,在插入一个新结点后,需要从插入位置沿通向根的路径回溯,检查各结点的平衡因子(左、右子树的高度差) 如果在某一结点发现高度不平衡,停止回溯 从发生不平衡的结点起,沿刚才回溯的路径取直接下两层的结点 平衡化旋转 平衡化旋转有两类: 单旋转(LL旋转和LR旋转) 双旋转(LR旋转和RL旋转) 如果这三个结点处于一条直线上,则采用单旋转进行平衡化 如果这三个结点处于一条折线上,则采用双旋转进行平衡化 平衡化旋转(续) (1)LL旋转:右单旋转 右单旋转的算法 (2)RR旋转:左单旋转 左单旋转的算法 (3)LR旋转:先左后右双旋转 LR旋转演示 (4)RL旋转:先右后左双旋转 RL旋转演示 建立一棵AVL树 从一棵空树开始,通过输入一系列对象的关键码,逐步建立AVL树,在插入新结点时使用前面所给的算法进行平衡旋转 课堂练习 西电1999年考研题:给定序列{3,5,7,9,11,13,15,17}: (1)按表中元素的顺序依次插入一棵初始为空的二叉有哪些信誉好的足球投注网站树。画出插入完成后的二叉有哪些信誉好的足球投注网站树,并求其在等概率情况下查找成功的平均查找长度; (2)按表中元素顺序构造一棵平衡二叉树,求其等概率情况下查找成功的平均查找长度,与(1)比较,可得出什么结论? 7、AVL树的删除 设q是被删除节点的父节点,如果删除发生在q的左子树,那么bf (q) 减1,而如果删除发生在q的右子树,那么bf (q) 加1;可以看到如下现象: 如果bf(q)=0,高度减1,需改变父节点和其他某些祖先节点的平衡因子 如果bf(q)=-1或1,无需变化 如果bf(q)=-2或2,那么树在q节点是不平衡的,需要平衡化处理 平衡因子为2或-2的两种情况 设A是第一个删除后bf(A)=2的节点,B为A的左子树或右子树上待删除节点 节点B删除之前,bf(B)=0、1、-1 L型不平衡:删除发生在A的左子树,又可细分为L0、L1、L-1三种 R型不平衡:删除发生在A的右子树,又可细分为R0、R1、R-1三种 例如:R0表示删除发生在A的右子树且bf(B)=0 R0类型的平衡化处理 与LL型旋转类似,区别在于仅在于A和B最后的平衡因子 R1类型的平衡化处理 与LL型旋转相同 R-1类型的平衡化处理 与LR型旋转相同 8、AVL树的应用 箱子装载问题:有若干个容量为c 的箱子和n个待装载入箱子中的物品。物品i需占s[i]个单元(0 s[i] ≤c)。 成功装载(feasible packing),是指能把所有物品都装入箱子而不溢出, 最优装载(optimal packing)则是指使用了最少箱子的成功装载。 箱子装载问题的四种解法 最先匹配法:物品按1,

文档评论(0)

qwd513620855 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档