数据结构第九章查找幻灯片.ppt

  1. 1、本文档共50页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
【例】就下列关键字序,建立5阶B-树。 ? 20,54,69,84,71,30,78,25,93,41,7,76,51,66,68,53,3,79,35,12,15,65 (1) 向空树中插入20,得图(a)。 20 20 54 69 84 t (a) (b) t (2) 插入54,69,84,得图(b)。 (3) 插入71,索引项达到5,要分裂成三部分: {20,54},{69}和{71,84},并将69上升到该结点的父结点中,如图(c)。 20 54 71 84 69 t (c) (4) 插入30,78,25,93, 得图(d)。 71 78 84 93 20 25 30 54 69 (d) t (5) 插41又分裂得图(e)。 (6) 7直接插入。 (8) 51,66直接插入, 当插入68,需分裂,得图(g)。 71 78 84 93 20 25 41 54 30 69 (e) t 41 54 71 76 84 93 7 20 25 30 69 78 t (f) (7) 76插入,分裂得图(f)。 30 54 69 78 41 51 66 68 71 76 84 93 7 20 25 (g) t (9) 53,3,79,35直接插入, 12插入时,需分裂,但中间关键码12插入父结点时,又需要分裂,则54上升为新根。15,65直接插入得图(h)。 3 7 20 25 79 84 93 35 41 51 53 66 68 71 76 12 30 69 78 54 (h) t 2. 删除 分两种情况: (1) 删除最底层结点中关键字 (a) 若结点中关键字个数大于?m/2? -1,直接删去。 (b) 否则除余项与左兄弟(无左兄弟,则找右兄弟)项数之和大于等于2(?m/2? -1)就与它们父结点中的有关项一起重新分配。如删去上图(h)中的76得下图。 3 7 20 25 84 93 35 41 51 53 66 68 71 78 12 30 69 79 54 图 (c)若删除后,余项与左兄弟或右兄弟之和均小于2(?m/2? -1),就将余项与左兄弟 (无左兄弟时,与右兄弟)合并。由于两个结点合并后,父结点中相关项不能保持,把相关项也并入合并项。若此时父结点被破坏,则继续调整,直到根。如删去图 (h)中7,得下图。 3 12 20 25 79 84 93 35 41 51 53 66 68 71 76 t 30 54 69 78 (2) 删除为非底层结点中关键字 若所删除关键码非底层结点中的Ki,则可以指针Ai所指子树中的最小关键码X替代Ki,然后,再删除关键码X,直到这个X在最底层结点上,即转为(1)的情形。 例:见P244 三. B+树 B+树是应文件系统所需而产生的一种B-树的变形树。一棵m阶的B+树和m阶的B-树的差异在于: ⑴ 有n棵子树的结点中含有n个关键码; ⑵ 所有的叶子结点中包含了全部关键字的信息,及指向含有这些关键字记录的指针,且叶子结点本身依关键字的大小自小而大的顺序链接。 ⑶ 所有的非终端结点可以看成是索引部分,结点中仅含有其子树根结点中最大(或最小)关键字。 68 78 93 20 25 3 7 84 93 35 41 51 53 66 68 71 78 7 25 53 53 93 图 一棵5阶二叉树 root sqt 通常在B+树上有两个头指针,一个指向根结点,另一个指向关键字最小的叶子结点 。因此,可以对B+树进行两种查找运算:一种是从最小关键字起顺序查找,另一种是根结点开始,进行随机查找。 在B+树上进行随机查找、插入和删除的过程基本上与B-树类似。 只是在查找时,若非终端结点上的关键字等于给定值,并不终止,而是继续向下直到叶子结点。因此,在B+树,不管查找成功与否,每次查找都是走了一条从根到叶子结点的路径。 B+树的插入仅在叶子结点上进行,当结点中的关键字个数大于m时要分裂成两个结点,他们所含关键字的个数分别为?(m+1)/2 ?和? (m+1)/2 ? 。并且,他们的双亲结点中应同时包含这两个结点中的最大关键字。 B+树的删除也仅在叶子结点进行,当叶子结点中的最大关键字被删除时,其在非终端结点中的值可以作为一个“分界关键字”存在。若因删除而使结点中关键字的个数少于?m/2?时,其和兄弟结点的合并过程亦和B-树类似。 9.4 哈希表查找(杂

文档评论(0)

开心农场 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档