版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1 基本概念9.1 静态查找表9.2 动态查找表9.3 哈希查找表第9章 查找教材第8、11和12章省略,因操作系统课程会涉及。2特点:一、二叉排序树的定义二、二叉排序树的插入与删除三、二叉排序树的查找分析四、平衡二叉树五、B-树和B+树9.2 动态查找表表结构在查找过程中动态生成。要求:对于给定值key,若表中存在其关键字等于key的记录,则查找成功返回;否则插入关键字等于key 的记录。典型的动态表二叉排序树3四、平衡二叉树平衡二叉树又称AVL树,它是具有如下性质的二叉树:为了方便起见,给每个结点附加一个数字,给出该结点左子树与右子树的高度差。这个数字称为结点的平衡因子balance。这样
2、,可以得到AVL树的其它性质:即|左子树深度-右子树深度| 1左、右子树是平衡二叉树;所有结点的左、右子树深度之差的绝对值 14(a) 平衡树 (b) 不平衡树例:判断下列二叉树是否AVL树?任一结点的平衡因子只能取:-1、0 或 1;如果树中任意一个结点的平衡因子的绝对值大于1,则这棵二叉树就失去平衡,不再是AVL树;对于一棵有n个结点的AVL树,其高度保持在O(log2n)数量级,ASL也保持在O(log2n)量级。00011-1-120001-15如果在一棵AVL树中插入一个新结点,就有可能造成失衡,此时必须重新调整树的结构,使之恢复平衡。我们称调整平衡过程为平衡处理。现分别介绍这四种平
3、衡处理。平衡处理可以归纳为四类: LL平衡处理 RR平衡处理 LR平衡处理 RL平衡处理6013037024例:请将下面序列构成一棵平衡二叉排序树: ( 13,24,37,90,53)013037-113024-124-213需要RR平衡处理(绕B左旋,B为根)090-124-137053190-237需要RL平衡旋转(绕B先右旋后左旋)037090053037090053 7若在A的左子树的左子树上插入结点,使A的平衡因子从1增加至2,需要进行一次顺时针旋转。(以B为旋转轴)ABCABC若在A的右子树的右子树上插入结点,使A的平衡因子从-1增加至-2,需要进行一次逆时针旋转。(以B为旋转轴)
4、2)RR平衡旋转:ABCABC1)LL平衡旋转:8若在A的右子树的左子树上插入结点,使A的平衡因子从-1增加至-2,需要先进行顺时针旋转,再逆时针旋转。(以插入的结点C为旋转轴)4)RL平衡旋转:ABCABCABC若在A的左子树的右子树上插入结点,使A的平衡因子从1增加至2,需要先进行逆时针旋转,再顺时针旋转。(以插入的结点C为旋转轴)ABCABCABC3)LR平衡旋转:这种调整规则可以保证二叉排序树的次序不变91 Status InsertAVL(&T, e, &t) 5 if (!T) ;Tbf=EH; t=1; /当前树空9 else /当前树根就是要找的if (e.key = Tdat
5、a.key) t=0; return 0;12 if (e.key = Tdata.key) /进入左子树13 if (!InsertAVL(Tlchild, e, t) return 0;14 if (t)16 LH: LeftBalance(T); t=0;else /进入右子树25 if (!InsertAVL(Trchild, e, t) return 0;26 if (t)28 LH: Tbf=EH; t=0;30 EH: Tbf=RH; t=1;32 RH: RightBalance(T); t=0; 37 return 1; 013037-113-213024-124In(13,
6、 37, 0)25 In(24, 37, 0);26/32 RightBalance(13); t=1;37 return 1;In(24, 37, 0)25 In(Null, 37, 0);26/30 T=24;RH; t=1;37 return 1;prc10五、B-树1定义2查找过程3插入操作4删除操作5查找性能的分析111B-树的定义B-树是一种 平衡 的 多路 查找 树:12平衡树(BF=0)根结点或为叶子结点,或至少含有两棵子树;其余所有非叶结点均至少含有m/2棵子树,至多含有 m 棵子树;树中所有叶子结点均不带信息,且在树中的同一层次上;13非终端结点包含(n,A0, K1, A
7、1, K2, A2, Kn, An )多个关键字均自小至大有序排列,即:K1 K2 keynum; i=Search(p, K); / 在p-key1.keynum中查找 i , p-keyi=Kkeyi+1 if (i0 & p-keyi=K) found=TRUE; else q=p; p=p-ptri; / q 指示 p 的双亲 if (found) return (p,i,1); / 查找成功 else return (q,i,0); / 查找不成功19在查找不成功之后,需进行插入。显然,关键字插入的位置必定在最下层的非叶结点,有下列几种情况:3插入1)插入后,该结点的关键字个数nm,
8、 不修改指针; 例如202)插入后,该结点的关键字个数 n=m, 则需进行“结点分裂”,令 s = m/2, 在原结点中保留 (A0,K1, , Ks-1,As-1); 建新结点 (As,Ks+1, ,Kn,An); 将(Ks,p)插入双亲结点;例如3)若双亲为空,则建新的根结点。 例如21例如:下列为 3 阶B-树(子树个数为2或3,故又称2-3树)50 20 40 80 插入关键字 = 60, 60 80 90,60809090 50 806030, 40 20 30 50 808030 5022被删结点不是最下层结点,借被删关键字的右子树中的最小关键字;被删结点为最下层结点,(1)它的关
9、键字个数不少,删除该关键字即可;(2)它的关键字个数不能减少:要从其左(或右)兄弟结点“借”关键字,无关键字可借时就进行结点“合并”:(2.1)“有的借”左(右)兄弟结点中最大(最小)的关键字上移至双亲,双亲结点中大于(小于)上移关键字的关键字下移至被删结点;(2.2)“没的借合并”把被删结点与其左(右)兄弟结点以及双亲结点中分割二者的关键字合并在一起。4删除保证关键字的个数不能小于m/2-123 在B-树中进行查找时,其查找时间主要花费在搜索结点(访问外存)上,即主要取决于B-树的深度。5查找性能的分析问:含 N 个关键字的 m 阶 B-树可能达到的最大深度 H 为多少?24第 2 层 2
10、个先推导每一层所含最少结点数:第 1 层 1 个第 H+1 层 2(m/2) H-1 个第 4 层 2(m/2)2 个第 3 层 2m/2 个反过来问: 深度为H的B-树中, 至少含有多少个结点? 25 假设 m 阶 B-树的深度为 H+1,由于第 H+1 层为叶子结点,而当前树中含有 N 个关键字,则叶子结点必为 N+1 个, N+12(m/2)H-1 H-1logm/2(N+1)/2) Hlogm/2(N+1)/2)+1由此可推得下列结果:26 在含 N 个关键字的 B-树上进行一次查找,需访问的结点个数不超过 logm/2(N+1)/2)+1结论:27是B-树的一种变型四、B+树281B+树的结构特点: 每个叶子结点中含有 n 个关键字和 n 个指向记录的指针;并且,所有叶子结点彼此相链接构成一个有序链表,其头指针指向含最小关键字的结点;29 50 96 15 5062 78 96 71 7884 89 96 56 6220 26 43 50 3 8 15sqroot 每个非叶结点中的关键字 Ki 即为其相应指针 Ai 所指子树中关键字的最大值; 所有叶子结点都处在同一层次上,每个叶子结点中关键字的个数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度赞助合同2篇
- 2024年度市场调查与咨询服务合同2篇
- 2024学校活动场地租赁协议
- 上海市奉贤区2024-2025学年八年级上学期期中英语试题(解析版)
- 2024合伙开店合同
- 江南大学《发酵工程原理与技术》2023-2024学年第一学期期末试卷
- 佳木斯大学《运动生理学》2021-2022学年第一学期期末试卷
- 2024年企业环境保护与污染治理合同
- 2024年债务担保协议标准范本版B版
- 暨南大学《自然辩证法概论》2021-2022学年第一学期期末试卷
- 医院科教科工作计划
- 《公务员法讲座》PPT课件.ppt
- 随机前沿生产函数
- 央视新大楼演播室系统综述
- PENTAX电子下消化道内窥镜中文操作手册
- 各航空公司机型介绍
- 2022年2022年高中物理《生活中的圆周运动》说课稿
- 三相变压器的参数测定实验报告
- 绕线机使用说明书
- 车务段三线建设经验材料
- 架空线路和电缆线路PPT课件
评论
0/150
提交评论