数据结构查找_第1页
数据结构查找_第2页
数据结构查找_第3页
数据结构查找_第4页
数据结构查找_第5页
已阅读5页,还剩91页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第九章查找本章主要内容:1.查找表的各种实现方法:静态查找表动态查找表2.查找的性能分析——平均查找长度的讨论。本章重点:1.熟练掌握顺序表和有序表的查找方法;2.熟练掌握二叉排序树的构造和查找方法;3.掌握二叉平衡树的维护平衡的方法;4.理解B-树、B+的特点以及它们的建树过程;5.熟练掌握哈希表的构造方法,理解与其它结构的表的实质性的差别;6.理解平均查找长度的计算。第九章查找9.1静态查找表9.2动态查找表9.3哈希表第九章查找查找(又称检索),简单地说就是查表。本教材将查找也归纳为一种数据结构——查找表。1.查找表

是由同一类型的数据元素(或记录)构成的集合。可以理解将各种数据结构(数组、链表、和树形)组成的一个表,在此表中进行查找操作。2.对查找表的操作(1)

查询某个“特定的”数据元素是否在查找表中;(2)

检索某个“特定的”数据元素的各种属性;(3)

在查找表中插入一个数据元素;(4)

从查找表中删除某个数据元素。第九章查找

3.静态查找表只作前两种称为“查找”操作的查找表为静态查找表。静态查找表中表的内容不变。

4.动态查找表在查找过程中同时插入表中不存在的数据元素或从查找表中删除已存在的某个数据元素,此类表为动态查找表。表中的内容不断变化。

5.关键字数据元素(或记录)中某个数据项的值,用它可以标识一个数据元素(或记录)。

6.主关键字唯一标识一个记录的关键字。第九章查找7.次关键字识别若干记录的关键字。

8.查找

根据给定的某个值,在查找表中确定一个其关键字等于给定值的记录或数据元素。9.查找成功表中存在关键字等于给定值的记录,查找结果为给出记录的信息或该记录在表中的位置。10.查找不成功表中不存在关键字等于给定值的记录,查找结果为空记录或空指针。

11.性能分析衡量一个算法好坏的量度有三条:时间复杂度、空间复杂度、算法其它性能。查找算法中的基本操作是“将记录的关键字和给定值进行比较”,以“其关键字和给定值进行比较的次数的平均值”为衡量查找算法好坏的时间标准。

平均查找长度定义为确定记录在查找表中的位置,把查找过程中对关键字需要执行的比较次数称为平均查找长度。平均查找长度为存储结构中数据对象总数n的函数:ASL=∑PiCi(1≤i≤n)其中:Pi为查找表中第i个记录的概率,∑Pi=1Ci为找到表中其关键字与给定值相等的第i个记录时,关键字和给定值已比较的次数。Ci随查找过程不同而不同。Ci取决于所查找记录在表中的位置。

一、顺序表的查找

9.1静态查找表

9.1静态查找表

一、顺序表的查找二、有序表的查找三、索引顺序表的查找

一、顺序表的查找

9.1静态查找表在线性表进行的查找。用顺序表或线性链表表示查找表。1.表的存储结构typedef{Elemtype*elem//数据元素存储空间基址Intlength//表的长度}SSTable;2.定义从表中最后一个记录开始,逐个进行记录的关键字和给定值的比较,若某个记录的关键字和给定值比较相等,则查找成功;反之,若直到第一个记录,其关键字和给定的值比较都不等,则查找不成功。3.算法intSearch_Seq(SStableST,Keytypekey){

ST.elem[0].key=key//ST.elem[0].key为“哨兵”for(i=ST.length;ST.elem[i].key!=key);--i)returni;}

一、顺序表的查找

9.1静态查找表4.性能分析对于含有n个记录的表,查找成功时的平均查找长度为ASL=∑PiCi(1≤i≤n)一般Ci=n-i+1设每个记录查找的概率相等,即Pi=1/nn为表的长度则ASLss=1/n*∑(n-i+1)=(n+1)/2

一、顺序表的查找

9.1静态查找表上述定义是忽略查找不成功的概率,否则,查找算法的平均查找长度应为查找成功的平均查找长度和查找不成功的平均查找长度之和。(假设成功与不成功的概率相同,对每个记录查找的概率也相同,此时对任一记录查找的概率为1/(2n),即Pi=1/(2n))(查找不成功需要比较n+1次)ASLss=1/2n*∑(n-i+1)+∑n(n+1)/2n=1/2n*∑(n-i+1)+(n+1)/2=3(n+1)/4查找成功的平均查找长度

查找不成功的平均查找长度

二、有序表的查找所谓有序表是指表中数据元素(或记录)是有序的(递增、递减),在有序表中进行查找所用的方法主要是折半查找(二分法查找)。1.折半查找方法在所查找的区间范围内,以处于区间中间位置记录的关键字和给定值比较,若相等,则查找成功;若不等,则缩小范围在新的区间继续折半查找。新的区间是通过判断关键字和给定值的大小,若关键字值比给定值小,则新的区间为小于中间位置的区间;否则为大于中间位置的区间。直至新的区间中间位置的记录的关键字等于给定值或者查找区间的大小小于零时(找查不成功)为止。

9.1静态查找表123

456

789101121

051319

2137566475808890lowhighmid=(low+high)/2high=mid-1midLow=mid+1mid查找成功,返回mid值。比较次数为3次。2.折半查找的算法采用顺序存储结构。IntSeardh_Bin(SSTableST,KeyTypekey){low=1;high=ST.length;//置区间初值while(low<=high){mid=(low+high)/2;//取不大于(low+high)/2的值if(key==ST.elem[mid].key)returnmid;elseif(key<ST.elem[mid].key)high=mid-1;elselow=mid+1;}

return0;}

二、有序表的查找

9.1静态查找表3.折半查找的性能分析如下11个数:1234567891011051319213756647580889034234134234查找时,第6位置的56需比较1次;第3和9位置的19和80需比较2次;第1、4、7和10位置上的数据需比较3次;第2、5、8和11位置的数据需比较4次。(1)

判定树

用二叉树描述折半查找的过程,称此二叉树为判定树。

二、有序表的查找

9.1静态查找表假定有序表中有n个记录,这n个记录作为二叉判定树的n个结点。根结点为有序表的中间结点即比较一次的关键字K(low+high)/2,左右子树分别为K<K(low+high)/2和K>K(low+high)/2的子过程,这是一个递归构造过程。

二、有序表的查找

9.1静态查找表分析:一奥个折吴半成斧功查甚找,撒正好起对应衡判定控树的熊一个析内部翅结点他(树僵中的款结点牛),关键白字的塔查找嫂次数为从翠根结艺点到吸该结洒点的路径榜长度月加1或该创结点撒在判定虹树的赔层数。如颤若查怖找2叹1所窑走的路蔽径为跑从根败结点塌6到戏结点梨4,嫁所走液路径裂长度郊为2调,结掌点4聚所在狐的层堵数为港3。结论津:折半史查找桨法在查找雹成功时进反行比较福的次蹈数最匠多不吩超过树的迷深度,即lo递g2n+1。二、心有序声表的常查找9.哪1静态查找欺表(2婶)组折半件查找彼的平只均查远找长跪度折半炮查找户时查找篇不成裂功的过蜡程就唤是一殖条从芦根结挡点到虹外部味结点碍的路炮径,比较款的次乎数为从表根结射点到码外部皱结点扬的路径颈长度圾或内赶部结政点的治个数。因始此不成遥功查饰找的苦比较蛇次数最多以也不碌超过lo遮g2n+1。二、例有序蛮表的萌查找内部货结点外部畜结点9.品1静态查找胆表二、姿有序访表的迹查找为了告讨论百方便招,假赵设有省序表页的长扩度n=观2h-1笼(反之h=木lo宰g2(n屿+1锣))厅,则描尿述折刃半查垦找的猴判定赌树是届深度赔为h的满裙二叉联树;慨另假孩设每李个记仙录的挺查找苦概率醉相等伟=1扬/n;则折真半查针找的平均蜜查找际长度恭为:AS科Lbs=∑PiCi(i从1高到n)=1艰/n罢*∑败j*协2j-健1(j从1牌到h)=nn+著1lo妹g2(n若+1客)-须1折半泼查找秃的效帐率比捕顺序志查找研高,术但只仗适用歼于有序拴表且各顺序凡存储纲结构。9.语1静态查找珍表三、索引练顺序饥表的呀查找以索俩引顺朋序表键表示倦静态矮查找块表,抄则用甜分块存查找化来实厕现,帅又称索引团顺序役查找,性滥能介省于顺赤序查肢找和奴折半段查找裁之间劈燕。1.螺索引斯顺序墙表的线结构(1承)线性砌表:表欺中的浓结点尤被分场为若偿干块蒸,每宫一块景中的悉结点月是任真意存煮放的利,块营与块最之间铜的结裂点关某键字笋是有摇序的繁,称谣为分扒块有锹序。(2汁)索引医表:将丝式线性挤表分杜成若皇干块凯构成假一个追索引北表,射每一蜻块是义线性层表中肚的一继个子异表,虹对应司索引点表的杨一个斧索引族项,索引徐表按化关键土字有饿序。索引木项关键头字项异:子表星内最杆大关喉键字指针回项:子表啄的第简一个构记录则在表袋中的自位置9.形1静态查找陷表2248861713索引崭表2212138920334244382448605874865312虽3公4右5管678集9脆10微1定1桃1酱21314鸡1拐5变16奖17最大齐关键胸字击起始悉地址三、索引旅顺序互表的酒查找线性额表9.婆1静态查找棉表2.作分块枝查找敞的步锯骤方骄法第一幼步:炮确定荒要查沾找的雄记录受在表埋中的夫哪一看块,榜在索在引表中采脆用顺序才查找或折半遍查找。第二杯步:尊在确马定的旬块中距查找假记录娃,由过于块荐中的贫记录旬是任意排简列的躲,只嫩能采饰用顺序麦查找。3.阵性能左分析平均谣查找料长度殿为:AS收Lbs=Lb+Lw将长聋度为n的表骡均匀医分成b块,宅每块盛含s个记监录,b=列n/制s,设查瞧找概批率相逼等,兄分别乓为1港/b,驰1/杰s。则顺杯序查可找所霸在块致平均妈查找活长度她为:三、哀索引董顺序芹表的授查找9.寒1静态查找教表(2往)AS划Lbs≈l稿og2(n裁/s块+1批)+注s/僻2即(折半袍查找更确定这所在奔块)9.盐1仪静质态查扛找表例:建立炼一棵趴具有赴13捐个结迫点的屿判定闹树,尸并求扭其成筋功查纺找和萌不成堤功查塘找的佳平均克查找垃长度仔各为踏多少秋。9.膛1扬静典态查均找表AS斤L成功=1姻/1眨3(莫1+纪2*排2+圣3*近4+显4*薪6)逐=4祥1/播13AS白L失败=1及/1灶4(抬3*额2+爬4*纹12栗)=既54仓/1笨4解:铃用结栽点的苏序号有表示夕结点含,构荒造的就判定津树是:9.善2姿动灯态查锻找表一、恭二叉柱排序谢树(丘二叉旷查找母树)二、雄平衡沾二叉此树三、B-树和B+树1.法动态企查找纺表的幕特点表结骡构本割身是去在查匪找过躲程中至动态盲生成缘瑞的,产即对逼于给旋定值ke采y,若表友中存在其关键劲字等袄于ke歉y的记价录,则查找典成功,否箱则插入气关键辱字等于ke费y的记舍录。2.钥动态责查找雪表的法抽象北数据坑类型居定义略。3.立动态检查找补表主膏要以树结屯构表示疗实现招。9.零2被动斯态查聚找表1.泛二尝叉排倦序树魔定义二叉胸排序凯树(Bi仇na汪ry报S吧or辞t填Tr羞ee使)或者型是一叼棵空沫树;或者毯是具晌有下漆列性桑质的顺二叉私树:若它储的左林子树昌不空柏,则左子术树上所龙有的崖结点缸的值水均小于呼它的燥根结妥点的档值;若它叙的右千子树辣不空矩,则右子摸树上所紫有的滋结点泄的值国均大于恳它的私根结我点的皆值;它的左、课右子哨树也莫分别煮为二西叉排胃序树。一、卖二叉泽排序华树(坑二叉速查找酒树)9.菠2动态远查找眠表一、环二叉肤排序旨树(福二叉浮查找李树)9.亿2动态浅查找岛表2.蛮二体叉排痛序树滴的查警找过绳程当二锐叉排盐序树萝不空旗时,筝先将赴给定生值和瞎根结乏点的扩关键扒字比燥较,攀若相朴等,恨则查惊找成继功;否则羞,3.斧二叉蓬排序正树的肥存储无结构通常将采用二叉财链表作为顾二叉往排序优树的倦存储惜结构糕。一、抵二叉杰排序疯树(舰二叉壤查找吧树)若给值定值抹小于械根结闷点的酷关键台字,寒则在旋左子而树上棋继续封进行游查找房诚;若给夫定值脾大于卖根结业点的夸关键参字,晌则在扶右子哪树上诞继续发进行策查找型。9.刊2动态藏查找双表4.赵二叉聋排序叫树的都查找宇算法这是雹一个位递归啄查找祥过程熟:Bi织Tr益ee冬S腥ea狂rc饿hB慢ST(Bi悼Tr汗eeT,Ke毒yT日yp支eke靠y){i王f(骆(!流T)招||变(k思ey野==沙T-方>d劝at次a.婶ke译y)魔)re扇tu祝rn分(T朝);el界se铜i晌f(苗ke倾y<蓄T-哀>d去at洒a.趟ke擦y)re够tu借rn也(Se暴ar靠ch秆BS净T(T小->lc柄hi吸ld,k唐ey宋))牙;el盲sere搭tu粱rn立(Se使ar美ch受BS局T(T到->rc乡丰hi易ld,k唱ey局));}一、停二叉勤排序名树(怕二叉杂查找侵树)9.月2动态篮查找您表1.遗二叉剑排序转树的卧插入这是述一个漠二叉优排序眠树的傲动态腾构造绒过程份。(1指)篇插入碑算法二叉厦排序交树是守一种欢动态裕树表躲。特点菌:树的伸结构阴通常余不是坦一次民生成姨的,议而是晶在查跟找过腰程中岔,当树津中不往存在丛关键俱字等桌于给躺定值痰的结雾点时疏再进落行插管入。新插该入的床结点起一定诞是一棍个新添必加的叶子结点,并乘且是透查找狭不成纺功时总查找救路径蛇上访堪问的惕最后谋一个诉结点孔的左钩孩子形或右粱孩子覆结点猎。二、含二叉缩慧排序伤树的挽插入堂和删膝除9.楼2动态辫查找捐表St汤at染usSe拔ar炕ch硬BS蛾T(Bi受Tr窝eeT,Ke怨yT膝yp每eke那y,Bi刊Tr造eef,Bi船Tr悔ee&p){史//查找庙不成谁功,p指向渡查找请路径荷上访井问的纲最后财一个斥结点if肾(!店T){p母=f预;r舟et撑ur透n偶FA史LS兄E;绳}el摇se授i摸f蛋(k河ey真==炭T-棵>d浪at区a.暂ke野y)躬{p庸=T析;配re环tu谱rn秒T薄RU筹E;偶}种//查找竟成功尿,p指向浆找到计的结框点el商se梁i搞f害(k串ey仙<T形->套da坊ta五.k止ey和)re拳tu碎rnSe堤ar症ch厉BS膜T(T-拖>lc椒hi罪ld,ke永y,T,p);el鸭se参r始et矿ur乎nSe怜ar轧ch谎BS露T(T-幻玉>rc滔hi耕ld,ke膝y,T,p);}St好at控us吼I蒙ns纳er浙t_虫BS普T(Bi倒Tr公ee&T颤,El拦em增Ty送pee){廊if骑(!Se危ar伙ch贼BS截T(T,e.叙ke惨y,NU挎LL摘,p))粮/林/查找麻不成染功{s=割(Bi粉Tr更ee*)ma逝ll蝇oc(si剑ze艳of(Bi草TN干od柔e))蔽;s-绘>d肌at良a=未e.嚼ke映y;市s-慎>lc莫hi船ld=s远->rc闷hi麦ld=N馋UL棕L;if慎(!寻p)示T红=s途;el速se盛i芽f驰(e告.k姻ey毙<p访->苏da煎ta鸟.k孕ey羞)川p水->lc杰hi验ld=s级;el阻se档p-桃>rc侮hi践ld=s尾;re正tu挤rn伟T狮RU椅E;普}el宇se忽r及et秤ur改n训FA改LS勺E;}二、跪二叉忆排序吓树的慈插入咬和删船除9.隆2动态根查找猜表(2劈燕)二蒜叉排袖序树浓的构关造特枪点若从仙空树黄出发只,经熔过一华系列剖的查套找插肚入操葡作之氧后,伞可生脚成一待棵二警叉排似序树逃。中序夕遍历摸二叉滴排序初树可得搬到一型个关键仙字有加序的躁序列。构造顽树的兽过程格就是礼一个百对无爬序序骄列进尽行排掘序的涝过程。一汤个无栏序序绩列通泉过构运造一视棵二背叉排慎序树农而变畅成一芝个有紫序序无列。在二酷叉排践序树菠上插品入一更个记识录或嗽结点礼,不塔需要锤移动混其它野记录圈或结荣点。二、蕉二叉汗排序稀树的贩插入则和删蹦除9.顾2动态疫查找渡表例:劈燕设查第找的钞关键恭字序扰列{漂45就,2富4,顽53煎,4畅5,魄12暑,2棕4,每90摧},耐则生愉成二即叉排蓝序树奋的过鼓程如悟图所掉示。二、幅二叉创排序补树的纷插入夏和删苦除9.音2动态选查找幼表2.摆在二括叉排胃序树象上删批除一凤个结埋点对于炸在二钓叉排乘序树登上进佳行一捉个结慢点的引删除鱼,由蛮于是津在一旋个有条序序盯列中厨删除矛,要附求删币除结睡点后况,仍联保持胞二叉横排序步树的贤结构损特点缺不变钟。(1勾)方埋法设被既删除侨的结薯点为否*p,其双熔亲结墨点为的*f,设*p为*f的左兔孩子璃。三种局情况泪:二、棚二叉互排序碗树的警插入影和删抗除9.壮2动态疏查找拼表若*p为叶造子结朱点,凤即PL和PR均为煌空树军。只陆需修馒改其衬双亲载结点摇的指础针即酒可,犯如图标(a)萌。若*p结点斯只有读左子造树PL或右痛子树PR蹄,此时制只要借令PL或PR直接持成为昨其双耍亲结席点*f的左鸽子树循即可掏,如勤图(b)翼。二、复二叉吐排序纺树的做插入洞和删变除9.信2动态燥查找淡表若*p结点攀的左间子树盾和右蹈子树驻均不朵空。有两狸种处舞理方皆法。炮以下音图为应例说炒明。图(a)是在滨删除帜*p结点谢之前杀,中势序遍蚁历二献叉树墨得到好的序秀列为播{…残.CLC…墙QLQSLSPPRF…飘},在删抹除*p结点振之后波,要反保持叨其它誓元素南之间陷的相稻对位棍置不质变。二、骨二叉胆排序洗树的胃插入协和删拍除9.厘2动态火查找灰表方法斤一:燥令*p的左概子树皱为*f的左铸子树剪,而谋*p的右系子树互为*s的右绣子树抖,如蛋图(b)夏;方法嗓二:参令*p的直约接前沟驱(厕或直价接后弱继)折替代誓*p,然后竭从二寒叉排魂序树格中删撒去它扫的直成接前绑驱(米或直形接后捐继)器。如虑图(c)当以贩直接抬前驱利*s代替型*p时,炒由于戚*s只有惩左子宽树SL,则在突删去甘*s之后雄,只逼要令SL为*s的双滑亲*q的右棵子树窃即可臣。二、籍二叉踏排序忠树的葱插入显和删揉除9.宽2动态轻查找川表(2舱)算迹法St凯at搂usDe反le肥te都BS衡T(Bi匀Tr怎ee&T纲,Ke冒yT暑yp寨eke话y){i蜂f(纲!T迟)re毕tu啄rn哗F鹊AL麻SE;el狼se{i碧f防(k躁ey为==性T-紧>d统at化a.毅ke殊y)re蔬tu横rn如D隐el层et乌e(患T);el梢se诞i厘f(料ke贩y<冶T-谁>d穿at歪a.错ke腐y)re欠tu极rnDe请le斧te液BS需T(T关->lc堆hi立ld,k炮ey午);el脸se修r温et群ur统nDe揉le鲁te菌BS厨T(T蓝->rc陪hi跌ld,k掀ey阁);re亮tu敢rn穴T偶RU默E;}}二、寻二叉渔排序袖树的喘插入慈和删戴除9.蛾2动态塔查找伟表Vo药id咬D坛el焦et正e(Bi爹Tr楚ee&p尚){梦if吸(!展p-朱>rc酒hi缘瑞ld)//右子同树空搏则只厅需重虽接它论的左结子树{q=摊p;扁p=禁p-荐>lc艇hi喇ld;f烫re喷e(浩q)掩;}el络se揪i任f(合!p鸦->lc还hi蝴ld)//左子再树空程只需锅重接猛它的军右子熊树{q=斤p;服p=饿p-宰>rc执hi科ld;f仅re伍e(欣q)堤;}el座se{q备=p盆;s铺=p趋->lc撒hi旋ld;wh炎il链e(磨s-丹>rc种hi偶ld){q脊=s孤;s穷=s粘->rc扇hi宿ld;}//转左驶,然乡丰后向庙右到级尽头p-妙>d伯at历a=款s-绑>d僻at拒a;//央s指向才被删缝结点辞的“椒前驱”if尝(q钟!=殖p)剪q创->rc令hi社ld=s叔->lc挠hi且ld;//重接尺*q的右珠子树el促se芒q违->lc纷hi险ld=s奖->lc忌hi吊ld;//重接铜*q的左清子树de存le她te景s池;}端}二、骗二叉奖排序董树的孤插入愤和删蚕除9.炮2动态孤查找寸表三、胳二叉吓排序源树的焰查找榜分析分析瓣在二能叉排婆序树民上查绩找其妙关键卡字等螺于给约定值查的结津点的亚过程虽,恰是肿走了梁一条撕从根旅结点逼到该锣结点中的路毕径的炼过程窝,和封给定女值比雕较的樱次数窃等于窗路径菠长度萄加1肢(或职结点折所在跑层数则),与折称半查偏找相崭类似伞。折半蛙查找后长度纲为n的表妖的判乔定树优是唯斥一的溜;而珠含有n个结缩慧点的悄二叉适排序仁树却传不唯殿一,佩取决瘦于关键母字的剩序列。因拳此,含有n个结皆点的识二叉深排序削树的撑平均盯查找匹长度岸和树就的形疏态有咳关。由分析牛得知:二圈叉排迎序树疑的平宜均查车找长与度最差学情况闭与顺驾序表绳相同渠(关赏键字丛有序数时);最好慰情况悔与折壶半查狐找相缠同。疯但平歼均查启找长滋度是艰和lo助gN等数量雪级的絮。9.吸2动态就查找蹲表如:婶含有制相同袄的关抓键字景的两逝个序柴列。序列输一:膊45袜,2篇4,舌53爹,1酱2,吉37不,9害4序列婆二:觉12袖,2蓝4,昌37陪,4汽5,存53秤,9括4452453123794122437455394序列牌一O(lo厅gN)序列鸭二O(点n)1.楚平衡柴二叉注树的刻定义平衡投二叉虹树(Ba等la拴nc额ed销B狼in庄ar嗓y童Tr隐ee或He说ig愉ht球-B港al郑an婶ce慈d委Tr及ee)又称AV奴L树。它或童者是一棵转空树;或者具有刺下列乔性质妨的二崖叉树:它的博左右鞋子树唇都是凶平衡坚二叉拖树,恶且左选子树口和右叹子树哑的深度百之差练的绝户对值嘴不超誓过1。2.束平衡截因子靠(BF闲)结点依的平魄衡因闸子为姓该结愁点的登左子晕树深逆度减拔去它铲的右杏子树抬深度睁。平衡有二叉陡树的掀平衡陪因子纽奉为-描1、后0和调1,巨即绝驰对值业小于穗等于炒1。阅否则恩该二屑叉树陈为不缘瑞平衡财二叉瞒树。四、弄平衡背二叉黎树9.慌2动态红查找奇表四、讯平衡链二叉淡树不平面衡二熄叉树平衡撇二叉训树9.帆2动态择查找秒表四、房诚平衡棒二叉木树2.催平衡耳二叉你树的宏构成例:很将关缠键字留序列许为{来13榨,2灭4,寨37挪,9题0,扁53钩}构谅成二盏叉排尚序树趋和平阅衡二边叉树色。9.远2动态隐查找夫表四、寸平衡面二叉糊树{1丘3,膊24榨,3袭7,诱90聪,5锣3}9.圆2动态讯查找微表(1匙)在二你叉排喷序树钱上插纽奉入结皮点或妥构造梅时,菜二叉接排序裹树结具点的本平衡道因子爆满足筋绝对朱值不践超过口1的度条件墓时,盖这棵腐二叉买排序晚树就舰是平之衡二厦叉树昼,构朗成方侍法同拆二叉疏排序糊树相睁同,底无其驴它变闷化。(2完)若在袋插入贪结点累时,恢使结付点的虫平衡券因子湖绝对袄值出敢现大智于1称的时韵候,贪这时须二叉季树失去普了平蒸衡,需废要对应二叉棍排序苏树进荡行调剖整,估即“旋转绢”以该保持余二叉料排序谜树为辱平衡公二叉超树。四、挖平衡瓦二叉描树9.柄2动态尾查找努表(3屈)对失灾去平捡衡的疏二叉驱排序浑树的调整可规律一般梳情况敢下,抚假设债由于粪在二初叉排选序树书上插驾入结盒点而柿失去挽平衡薄的最险小子侮树根贩结点勤的指同针为a(即a是离扔插入绝结点垮最近校,且泻平衡演因子悠绝对毙值超薪过1摩的祖妈先结镇点)凶,则盐失去温平衡臣后进单行调唱整的倾规律脊可归盛纳为描下列内四种不情况承:a.单向淹右旋鲜平衡原处理有(LL型)b.单向挡左旋尘平衡滥处理叉(RR型)c.双向蔑旋转润(先茫左后俊右)缸平衡心处理究(LR型)d.双向烦旋转辛(先纱右后钉左)疤平衡览处理骂(RL型)四、秋平衡海二叉作树9.吹2动态秆查找把表单向随右旋婶平衡低处理减(LL型)在a的左子疲树的泽左子御树上插脱入结暂点,锄使得a的平衡醉因子辩由1纹增至且2,胜将a的左够孩子b提升子为子主树的根结订点,a作为b的右子树,b原来倍的右子语树作为a的左子引树。四、杰平衡眯二叉芳树9.唯2动态沟查找可表单向值左旋次平衡躺处理缩慧(RR型)在a的右子宪树的烤右子节树上插刚入结把点,耍使得a的平衡崭因子摆由-造1减出至-骡2,父将a的右须孩子b提升垮为子秆树的根结匹点,a作为b的左子盗树,b原来陈的左子姐树作为a的右子四树。四、脸平衡裁二叉你树9.赛2动态拌查找层表双向劈燕旋转耗(先趴左后盟右)瓣平衡碎处理触(LR型)在a的左子丙树的搭右子熟树上插变入结骆点,淘使得a的平衡快因子芳由1占增至就2,蜘将a的左篮孩子支的右装孩子br提升谈为子免树的孝根结思点,b、轰a作为br的左、挥右子馒树,br原来遮的左、艇右子束树分别衫作为b的右子锐树和a的左子嘱树。四、厌平衡愚二叉谁树9.巩2动态雅查找酸表双向壮旋转爪(先猎右后旗左)仓平衡自处理找(RL型)在a的右子饥树的看左子槐树上插嫩入结何点,币使得a的平衡近因子霞由-可1减困至-删2,临将a的右奔孩子指的左拥孩子bl提升术为子婆树的列根结抵点,a、蛇b作为bl的左、艳右子底树,bl原来豆的左、腹右子颗树分别违作为a的右子布树和b的左子施树。四、屡平衡惰二叉卸树9.熊2动态沟查找次表(4吗)旋转乏操作吴的正佣确性踪蝶容易崭由“阔保持暖二叉讲排序湾树的厘特性列:中慕序遍翻历所袍得关道键字拳序列巴自小饱至大烟有序权”证望明之罪。(5卸)经过族平衡巴旋转旨处理帆之后席,以糟*b或*br(*bl)为根声的新班子树狠为平气衡二升叉树静,而换且它丸的深群度和柔插入雁之前带以驳*a为根啦的子追树相玻同。奖因此甜,当衰平衡商二叉配排序火树因竹插入蛛结点疾而失迎去平瓦衡时蛾,仅牺需对痛最小物不平骨衡子眠树进确行平胶衡旋饺转处录理即字可。遥因为黎经过侄旋转森处理陕之后棵的子朱树深滚度和揭插入秩之前榴相同球,因陪而不槽影响月插入筹路径汤上所装有祖委先结傲点的由平衡沸度。四、萄平衡李二叉斧树9.族2动态讽查找抖表3.蔬在AV剖L树BB较ST上插柱入一提个新肥的数俯据元跌素e的递贯归算号法(1库)若BB铜ST为空逆树,能则插室入一质个数烟据元绪素为e的新灯结点齿作为BB茅ST的根物结点种,树霸的深飞度增遮1;(2许)若e的关未键字敌和BB财ST的根折结点祝的关日键字滥相等每,则废不进讯行插屑入;(3雁)若e的关狗键字贩小于BB编ST的根伪结点皆的关即键字茶,而娇且在BB答ST的左鸦子树傻中不躬存在网和e相同侦关键余字的粪结点常,则架将e插入腐在BB持ST的左软子树尿上,拍并且维当插茎入之昆后的掀左子跃树深活度增枯加(榴+1护)时标,视帐如下千情况仆处理蔬:四、汉平衡情二叉常树9.擦2动态钉查找非表BB紧ST的根垃结点仰的BF为-亦1:溉则将雹根结铁点的BF更改萝为0汽,BB否ST的深录度不况变,欣如下五图(a)所示难。BB乓ST的根旧结点娘的BF为0绳:则协将根比结点盈的BF更改供为1奖,BB万ST的深京度增地1,肌如下餐图(b)所示米。(a)(b萄)四、雷平衡厅二叉锹树9.允2动态写查找福表c)BB犯ST的根兄结点廊的BF为1投,分仇两种残情况膏:BB站ST的左绒子树际根结铲点的BF为1伤:则遇需进浙行单凡向右廉旋平态衡处疮理,改处理恒之后气,根妨结点壶和其卡右子健树根帐结点傲的BF改为摔0,案树的锣深度局不变丈,如距图(c河)。四、晓平衡春二叉乖树9.峰2动态着查找馆表BB听ST的左售子树绕根结随点的BF为-胀1:暴则需龟进行霜先向谅左、牲后向议右旋献转平屑衡处暴理,聋处理茅之后而,修沿改根咏结点扮和其追左、亿右子鞠树根脏结点辽的BF否,树的鉴深度月不变很。四、掩平衡完二叉轿树9.使2动态持查找过表(4必)若e的关仪键字好大于BB捞ST的根疼结点虑的关营键字姻,而笛且在BB驴ST的右福子树给中不盛存在洪和e有相在同关隐键字贝的结岩点,兰则将e插入顽在BB翅ST的右撒子树颈上,盗并且扁当插栏入之恐后的佣右子咱树深播度增纺加(湿+1魄)时栏,分惹别就背不同闻情况州处理回之,蓄与(类3)练类似。四、筝平衡倾二叉券树9.气2动态绑查找闲表4.平响衡树妻查找兆的分捆析同排够序树龄,在绸查找挥过程跟中和灾给定彻值进学行比私较的滋关键矛字个业数不背超过侧树的才深度降。我们叔考虑兴最坏误情况既,既n个关撑键字斥平衡企树的蛋最大豪深度航,为柔此我绘们需城要知倍道深炼度为h的平酷衡树浅所具沫有的岛最少薯结点础数.设深谋度为h的平罪衡二半叉树枯的最诉少节辣点为Nh。已知雀:N0=0,N1=1,N2=2,则Nh=Nh-富1+Nh-歼2+1迁(递归),和次斐波示那契虑序列耻极为陈相似辆。当h≥篮0时,则含连有n个关病键字候的平竭衡树诊的最鸡大深线度。四、赚平衡奖二叉亚树9.贩2动态调查找贪表例:敌设一优组记吨录的痛关键鞭字按拜下列符次序释进行昏插入{4盼,5不,7沸,2虫,1拳,3车,6信},生成冷一棵AV赵L树。应试描搂述其喂生成恶及调奋整成左平衡敞二叉像树的类过程炸,并洞指明私该步务骤是承属于佳什么迫调整揪平衡蒙方式于的基令本类抓型。四、帝平衡出二叉压树9.铜2动态穗查找墙表四、擦平衡孤二叉坝树9.房诚2动态掘查找劣表四、兵平衡辆二叉保树9.躺2动态付查找卡表1.B-树的洞定义前面盼介绍遍的查友找法臭,仅密适用疫于计暮算机神内存险中的蜜文件怎或表广,统薪称为透内查赛找法采,而稼对外答存上晨文件鄙的查泡找称尘为外僵查找交法。前面缓介绍帆的方斜法也句可应跳用于问磁盘罩文件宏,例鼻如一弓个磁范盘文功件包独含n个记据录,n=郑106,且该拥文件征表示窃成一逝棵二践叉树泡形,絮那么踪蝶欲从基该文艺件中笨查找占包含妙某一滤给定杨关键模字的扎记录涨平均嗽来说帖大约巾要做lo帐g2n=银lo症g2106≈2尿0次磁狠盘的仁存取荡操作鼠。因窜为对奏磁盘纺存取衔的速丈度比遍内存添中的随存取萄速度帐慢得核多,级因此爬当n较大踢时,泉用二猾叉树止形来铲表示青文件怎是行来不通瓣的。豆对于忽外存慕上的进文件扔而言绍,减得少查叙找过吉程中隐磁盘朱存取接次数填,是腊很必动要的袜,B-树就早是解冷决此评类问边题提芦出的温。五、B-树和B+树9.漆2动态旦查找湖表B-树是谢一种盏平衡冷的多店路查揉找树胃,是殖一类掩适于射外查义找的六数据圆结构失。m阶的B-树,瓜或为折空树善,或脂为满标足下吩列特逃性的m叉树股:(1慕)树中懂每个菌结点顾至多有m棵子庄树;(2嚼)若根耳结点攻不是牌叶子爷结点,则矿至少扭有两棵子卫树;(3擦)除根尸之外餐的所苍有非终奸端结迁点至少语有m/纽奉2棵子乖树;(4兆)所有非终催端结窄点具有n(m/刑2-漂1≤n馆≤m资-1)个关键寇字域和n+近1个指针啊项,指磨向该钢结点狸的n+愿1棵子歼树;坡结点枝包含塘下列吉信息恩数据(n,菜A0,K1,A1,K2,A2,…开…Kn,An)其中息:Ki为关谦键字钢,且Ki≤Ki+1,Ai为指只向子诞树根楼结点旷的指馅针,袜且KAi-1≤Ki≤KAi,。(5种)所有芹叶子洋结点并都出傍现在或同一长层次疾上,栗且不婆带信政息,忘仅表恳示查恒找失饲败(门外部待结点茄)。五、B-树和B+树9.迅2动态勉查找锄表下图臣所示饼的是互一棵物4阶穗的B-树(刃又称2-课4树,非限终端宵结点伐关键犬字个仓数至微多为冒3,胖至少厅为1亚,子窑树个婆数最坦少为共2,膊最多扭为4堡)五、B-树和B+树9.豪2动态叮查找批表2.B-树上粥的查阻找在B-树上轰的查剂找过胳程和垫二叉券排序碑树的释查找请类似缺。首扩先在估根结鉴点所贱包含糕的关胞键字袭中查扫找给减定的辜关键奸字。减若找斗到,金则查膏找成牲功;阻否则劳,确恋定待徐查关徐键字抓所在寨的子屿树并拥在其偶上查窜找,化直到右查找狼成功狭或查批找不游成功肢(失可配结沈点F)专。在B-树上贿进行北查找白的过湖程是慨一个现顺指豪针查素找结郑点和篇在结鸟点的邻关键吊字中陶进行嗓查找苗交叉攻进行该的过秃程名。五、B-树和B+树9.当2动态乡丰查找储表3.B-树查情找分由析从上狭面的野分析残得知漏,在B-树上怒进行榴查找尼包含盛两种单基本存操作藏:(1)纱在B-树中题找结然点:性在磁荷盘上厕进行军。(2描)项在结忧点中纽奉找关页键字闸:在条内存宁中进罚行的牵。对(称1)电的查脱找效岂率决舒定了B-树的门查找覆效率不,取涝决于添待查参关键粥字所胞在结门点在B-树上刃的层菌次数隔,这吴是决怪定B-树查台找效炼率的迅首要停因素碗。考虑磁最坏窗情况员,即苦待查武结点务在B-树上险的最冈大层著次上未,确狱定含铅有N个关抄键字脏的m阶B-树的唇最大神深度榆,即宏可判借断其律查找骗效率央。在具脏有N个关略键字进的B-树上旦进行昌查找浆时,土从根围结点距到关扰键字K所在翅结点帅的路幕径涉伯及的凝结点距数目拘不超袄过:lo膛gm/帝2((拨N+烦1)晚/2寒)+嚷1。五、B-树和B+树9.思2动态大查找恰表4.B-树的佛插入军和删劳除在B-树上益进行矿插入殃和删畅除操挨作较听为复共杂,湾要使树进行项操作御后的淡结点伟中关果键字悉个数N满足m/崖2-逝1违≤俭N估≤你m-面1,将涉举及结批点的分裂与合并。(1董)B-树的叮插入B-树的剃生成俭也是仪从空毫树开越始,育逐个剖插入虚关键脊字而桶得。味由于B-树中栗关键之字个质数必恶须≥m/挪2-1油,因此政,每糖次插忽入一辰个关删键字和不是潮在树乡丰中添危加一册个叶旬子结亏点,估而是纲首先困在最惹低层缴的某开个非谢终端礼结点术中添萝加一组个关蜡键字带,若该惜结点昼的关鸦键字棕个数忽不超妈过m-敬1,则插感入完话成,申否则脱要产休生结模点的祝“分漠裂”。五、B-树和B+树9.料2动态蠢查找虑表“分眼裂”缝的实鞋现:假设乌*p结点抢中已持有m-管1个关庄键字墨,当闪插入顶一个矮关键像字之升后,嫌结点奖含有酷信息蝴为:m,挨A0,(右K1,A1),金……昆(Km,Am)其中Ki<Ki+11≤圆i<仿m此时介可将引*p结点职分裂隔为*p和*p’两个佳结点勇,以m/风2为分型裂中宋心,宇其前弹一部攀分,习放在*p结点棒中,真后一务部分四放在*p’结点弃中。其中篇:*p结点播中含挽有信秃息为m/速2-1采,A陡0,倘(K1,A1),望……盘(Km/桨2-1,Am/偿2-1)*p瞒’结点倦中含并有信岩息为m-m/却2,Am/柳2,(税Km/炊2+1,Am/锅2+1),松……立(Km,Am)而关签键字Km/镜2和指巴向*p’的指孝针一万起插宏入到窗*p的双胡亲结唐点中外。五、B-树和B+树9.陡2动态休查找蝴表(2肠)B-树的榆删除若在B-树上牵删除琴一个稳关键跌字,内则首搂先应哗找到凭关键位字所注在结湖点,托并从将中删忆除之迅,若扇该结之点为环最下匹层的拘非终浊端结视点,白且其丛中关键粥字数瞧目不公少于m/柄2,则删古除完至成,碌否则肾要进击行“海合并尸”结胁点的丛操作率。五、B-树和B+树9.倚2动态银查找霜表删除垃最下帽层非吧终端瞎结点显中的垃关键描字情荡况,有下胶列三从种可朱能:被删挨除关货键字凶所在汗结点巨中的质关键钓字数莫目不诸小于m/没2,则只妨需从钉该结森点中膝删去丽该关蹈键字Ki和相得应的慰指针Ai程,树的勾其它出部分孟不变渔。被删挑关键洁字所筐在的治结点碎中的铲关键殃字数净目等猎于m/穿2-1踪蝶,而与磨该结匙点相介邻的秆右兄鲜弟(殃或左朵兄弟蜘)结下点中刷的关躁键字烤数目乳大于m/侮2-1陷,则需侮将其粗兄弟乎结点咸中最暖小(沿或最雨大)福的关我键字宽上移雾至双予亲结跑点中浅,而链将双明亲结换点中红小于岂(或记大于善)且环紧靠夺该上翠移关被键字秀的关猜键字伟下移叛至被前删关探键字门所在池结点般中。被删摩关键铺字所钞在结利点和铺其相没邻的肥兄弟置结点答中的风关键酱字数保目均糕等于m/鸡2-1菠。假设喜该结美点有产右兄驾弟,考且其缸右兄戏弟结质点地震址由抛双亲肢结点覆中的孙指针Ai所指朽,则辣删去惨关键泳字之悲后,省它所买在结逗点中较剩余授的关书键字某和指葱针,危加上芽双亲取结点浅中的稼关键盟字Ki一起好,合晚并到Ai所指河兄弟龙结点炊中(封若没猾有右掏兄弟摩,则蔬合并透到左都兄弟磁结点小中)韵。五、B-树和B+树9.面2动态旷查找偏表一、呀哈希课法的腔概念二、摄哈希役函数误的构道造方伙法三、股处理迟冲突榆的方自法四、寸哈希答表的比查找吸及其帆分析9.繁3兰哈识希表1.伟哈希秒法的轧引入哈希炉英文咳名称烟为Ha妨sh眉,散列集(杂骡凑)脱的意形思。皆因此弦哈希坑表又撇称散孤列表妇(杂筒凑表衣)。用哈损希表依是一柿种重谋要的拾存储欣方法爆,也狼是一担种常严用的屑查找寻方法画。前摇述的畏查找蛙方法都是顽以关书键字肠的“比较”为暗基础深的。卵查找裳的效蓄率依后赖于踢查找借过程趣中所奴进行骄比较委的次悼数。裕查找胶效率糕取决斯于结牧点的注个数捐。理想零的情扫况是洞希望博不经忠过任量何比撒较,编一次载存取圆便能熔得到亲所查缘瑞记录晚,那喇就必适须在燃记录指的存杆储位季置和谈它的爬关键籍字之掌间建山立一点个确橡定的折对应闯关系f,使每被个关插键字炉和结旬构中跳一个逃唯一窜的存绕储位妻置相猾对应伤。这亚就是贡哈希巾法的迟思想镇。查找席时,娘只需滋对结练点的跃关键宋字进就行某准种运杀算,护就能丝式直接雹确定为记录共在表好中的航位置介。9.洋3份哈迎希表一、饭哈希匪法的骆概念2.迫哈隶希函沿数定钩义将结床点的呈关键浓字作拜为自古变量ke匙y,通过何一个倡确定第的函数摸关系(关塞于关杯键字嗽的某窗种运踏算)f,计算曾出函锻数值f(坐ke葱y)作为围该结波点的草存储际地址掩。这满个确静定关再系f就是名哈希廉函数英。查找洁时,旷用哈窃希函怨数确股定地删址取心结点肌。如:景某地猾区解蜻放后因人口伞调查笔表,懒关键降字是规年份顾。9.紫3炊哈积希表一、轿哈希径法的普概念地址0102……22……58年份19491950……1970……2006人口15361540……2059……4065H(念ke乘y)露=k堪ey阁-1农94快83.等哈呀希表真的定译义用哈妙希函营数建输立起梦来的坝存储壶结构爽称为巧哈希隐表。4.智散挡列地氏址法泪(散嘴列技遗术)用哈猴希函爷数转扰换记卡录关而键字棒得到摊存储务地址巨,把挡各记凶录散冠列到而相应躲的存息储单唯元里停去的贩方法悬,称趴为散碑列地扫址法垄或关汉键字根转换摸法。9.异3抛哈何希表一、卷哈希堂法的添概念5.猪冲突对不妖同的悦关键露字可菊能得忌到同考一哈凯希地影址,稿即ke荡y1ke知y2,而f(琴ke邮y1)=帜f(隐ke理y2),这种尚现象橡称为驾冲突配。如:更全国杆各省油的人悦口统比计表杀中,滔关键段字为吼各省馒名字沈的汉盟语拼程音。切使用半不同察的哈恰希函勺数。H1(k平ey姥):关键网字中省第一馋个字疑母在浙字母蓝表中饺的位占置H2(k卧ey顾):关键腥字中吃第一逢个与触最后行一个厚字母斧在字娃母表针中位吸置的住和,卖若比虏30庙(表赤长)奋大,创则减皆30耍。9.奸3捏哈厦希表一、插哈希另法的岛概念keybeijingtianjinhebeishanxishanghaiH1(key)0220081919H2(key)0904172828具有相同钱函数警值的关键镰字对该赚哈希动函数饭来说驳称为同义致词。6.柄哈希款法的素两个剩问题(1泊)掌如攻何构肤造哈蹲希函钉数构造御哈希摘函数溜也要顶解决般两个爬问题软:哈希陕函数羞应是尚一个压缩样映象函数爹,它道应具猜有较魂大的跑压缩饼性,榨以节棉省存虎储空觉间。亦这样消就不宪可避怖免地光产生呈冲突虹。哈希锯函数惩应具岗有较北好的散列弯性,尽馒量减恼少冲另突。(2要)挺如让何解及决冲郊突9.世3态哈庸希表一、辫哈希笼法的狠概念7.唤综合撇描述根据心设定析的哈希抗函数H(黄ke币y)和处理俱冲突的方企法将专一组关键感字映调像到一汇个有核限的连续晃地址腰集(唯区间专)上,并丑以关嗽键字斑在地槐址集垃中的宇“像”作央为记倦录在裕表中丝式的存储朴位置,这徒种表类便称亏为哈希勿表,这丈一映像脸过程为哈希纳造表直或散柿列表,所沈得存储免位置称为哈希顺地址或散列屈地址终。9.眼3饭哈侄希表一、俊哈希雄法的沿概念均匀口的哈晓希函负数——若对计于关令键字充集合声中的塔任一叛个关烦键字知,经脂哈希筹函数愚映像泳到地检址集组中任赌何一屠个地养址的睬概率僚是相针等的若,则事称此间类哈乒希函种数为错均匀陈的哈翻希函赢数。换句迁话说挥,就忌是关阁键字疯经过斤哈希朵函数焦得到宅一个塘“随机奴的地蚕址”,只以便碗使一兔组关晓键字阵的哈越希地填址均匀染分布在整界个地朝址区毯间中视,从落而减来少冲兰突。1.庙直接鬼定址六法取关键恼字或槽关键抢字的暖某个卸线性快函数吉值为哈泪希地厌址。怕即H(航ke喂y)铸=k捡ey或H(陵ke恳y)饺=a栋*k纠ey罢+b其中a、桶b为常伞数。掠又称H(盯ke笨y)为自恐身函担数。这种妈方法马,地签址集苦合和施关键闸字集纲合相透同,艳没有坚冲突喂,但走若关辞键字召集合绸大,刚则地晴址空秆间也悟很大肝,很糠少采寻用。9.像3悉哈千希表二、紧哈希方函数猫的构竿造方骆法2.代数字跌分析胆法假设正关键刃字是剖以r为基金的数厨(如虹以1同0为绘基的白十进扑制数殃),威并且框哈希球表中误可能渐出现孤的关料键字柱都是急事先富知道检的,抱则可雹取关寨键字岔的若矮干数害位组热成哈捧希地虽址。此方榆法是悲通过干分析流关键停字的使构成营(主鸦要是闹数字漂形式联),为了届尽量飘避免太冲突斗,取萄那些迎出现尚的数耀字随际机的框位数剪,作量为哈蓬希地酒址的薄位数寺,而浴那些略总出愁现一而种数糊字或成某几舟种数俭字的倍位数扑,则川不取皮。9.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论