011搜索树 - 3.ppt

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

* * 设P是饱和节点,现将带有空指针的新元素e插入到P中,得到一个有m个元素和m+1个孩子的溢出节点。 用下面的序列表示溢出节点(ei是元素,ci是孩子指针): m,c0,(e1,c1),...,(em,cm) 从ed处分开此节点,其中d=「m/2]。 左边的元素保留在P中,右边的元素移到新节点Q中,(ed,Q)被插入到P的父节点中。 新的P和Q的格式为: P:d-1,c0,(e1,c1),...,(ed-1,cd-1) Q:m-d,cd,(ed+1,cd+1),...,(em,cm) 注意P和Q的孩子数量至少是d。 B-树的插入-饱和 Insert(25) 当新元素需要插入到饱和节点中时,饱和节点需要被分开。 7,0,(20,0),(25,0),(30,0),(40,0),(50,0),(60,0),(70,0) 节点从ed处分开此节点, d = ?m/2? =4 P:3,0,(20,0),(25,0),(30,0) Q:3,0,(50,0),(60,0),(70,0) 节点ed插入到父节点中 20 30 40 50 60 70 20 25 30 40 50 60 70 e1 e2 e3 e4 e5 e6 e7 d 20 25 30 50 60 70 e1 e2 ed-1 ed+1 ed+2 em 10 80 * Insert(25) 需要从磁盘中得到根节点及其中间孩子 写回分开的两个节点 写回修改后的根节点 磁盘访问次数一共是5次。 山东大学计算机科学与技术学院 数据结构 第11章 搜索树 * 2-3 树 Insert(44) * 磁盘访问的总次数 Insert(44): 搜索 44 : 3 3个节点被分开( split): 6 (每个节点被分开: 2次写操作 ) 产生一个新的根节点并写回磁盘 : 1 磁盘访问的总次数 : 10 假设: B-树的高度: h s个节点分裂 磁盘访问次数 =h+2s+1 //1:回写新的根节点或插入后没有导致分裂的节点 最多: 3h+1 * * 示例:从空树开始逐个加入关键码建立3阶B_树 * * 山东大学计算机科学与技术学院 数据结构 第11章 搜索树 * 11.4.7 B-树的删除 删除分为两种情况: 被删除元素位于其孩子均为外部节点的节点中(即元素在树叶中)。 被删除元素在非树叶节点中。既可以用左相邻子树中的最大元素,也可以用右相邻子树中的最小元素来替换被删除元素,这样2就转化为1 。 山东大学计算机科学与技术学院 数据结构 第11章 搜索树 * B-树的删除 第1种情况: 从一个包含多于最少数目元素(如果树叶同时是根节点,那么最少元素数目是1,如果不是根节点,则为?m/2? -1 )的树叶中删除一个元素,只需要将修改后的节点写回。 Delete(50) Delete(50) 磁盘访问次数是2(从根到包含50的树叶)+1(写回修改后的树叶)=3。 * B-树的删除 第1种情况: 当被删除元素在一个非根节点中且该节点中的元素数量为最小值时 它的最相邻的兄弟(最相邻的左或右兄弟)有多于最少数目元素,用其最相邻的左或右兄弟中的元素来替换它。 为保持低次数的磁盘访问,只检查最相邻兄弟之中的一个。 Delete(25) Delete(25) 磁盘访问次数是2(从根到包含25的树叶)+1(读取该树叶的最相邻左兄弟)+3(写回修改后的树叶、兄弟和父节点)=6。 * B-树的删除 第1种情况: 当被删除元素在一个非根节点中且该节点中的元素数量为最小值时, (1)它的最相邻的兄弟(最相邻的左或右兄弟)有最少数目元素,将两个兄弟与父节点中介于两个兄弟之间的元素合并成一个节点。 (2)由于两兄弟分别有d-2和d-1个元素,合并后节点共有2d-2个元素。当m是奇数时,2d-2等于m-1;而当m是偶数时,2d-2等于m-2。节点中有足够的空间来容纳这么多元素。 Delete(10) * 磁盘访问次数是3(到达包含被删除元素的树叶)+2(读第二和三层的最相邻右兄弟节点)+4(将第一,二和三 层的4个修改后的节点写回磁盘) 因此总的磁盘访问次数是9次。 * * 最坏情况下,这种过程会一直回溯到根节点。当根节点缺少一个元素时,它变成空节点,将被抛弃,树的高度减1。 B-树的删除 Delete(44) 山东大学计算机科学与技术学院 数据结构 第11章 搜索树 *

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档