- 1、本文档共156页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
8.3.2 B-树的定义 1970年,R.Bayer E.Mereight提出了一种外有哪些信誉好的足球投注网站树,称为B-树,这是一种多叉平衡树,它在修改 插入和删除 过程中有简单的平衡算法。B-树的一些改进形式已成为索引文件的一种有效结构,得到了广泛的应用。 一棵m阶B-树是一棵m叉有哪些信誉好的足球投注网站树,它或者是空树,或者是满足下列特性的树: 1 根结点至少有两个孩子。 2 除根结点和失败结点外的所有结点至少有 m/2 个孩子。 3 所有失败结点均在同一层上。 上述定义表明,B-树是一棵多叉有哪些信誉好的足球投注网站树,它通过限制每个结点中包含的元素的最少个数,以及要求所有的失败结点 空子树 都在同一层上,来防止产生退化树形。 例如,图8-24是一棵4阶B-树,结点中最少的元素个数为 m/2 -1 1个,最多的元素个数为m-1 3个。 图8-24 4阶B-树 8.3.3 B-树的高度 B-树具有这样的性质:设B-树的失败结点的总数是s,那么一棵B-树的元素总数N是B-树的失败结点的总数减1,即N s-1。 现在来说明这一点。在B-树中,每个非失败结点中包含的元素的数目比它所包含的指针数少1。设非失败结点的个数为n,则B-树的元素总数N等于所有非失败结点包含的指针总数t减去n,即N t-n,而指针总数t等于除根结点以外,失败结点数和非失败结点数的总和,即t n+s-1,所以n+s-1 N+n,因此,N s-1,即一棵B-树所包含的元素总数是B-树的失败结点的总数减1。 结点所在的最大层次是B-树的高度。那么,包含N个元素的m阶B-树的最大高度是多少呢? 根据B-树的定义,第一层为根结点。根结点至少有两个孩子,所以,第二层至少有2个结点。除根以外,每个非失败结点至少有?m/2?个孩子,所以第三层至少有2*?m/2?个结点……,依此类推,第h+1层至少有2* ?m/2? h–1个结点。不妨设第h+1层是失败结点,并设m阶B-树有N个元素,则失败结点的个数为N+1,由此可见: N+1≥2* ?m/2? h–1 8-10 所以有: 8-11 这就是说,在含有N个元素的B-树上有哪些信誉好的足球投注网站一个关键字,从根开始到关键字所在的结点的路径上,涉及的结点数不超过1+log?m/2? N+1 /2 ,这也是B-树的最大高度 不含失败结点 。 8.3.5 B-树的插入 将一个元素插入B-树中,首先要检查B-树中是否包含相同关键字值的元素,如果存在,则插入运算失败终止,否则有哪些信誉好的足球投注网站必定终止在失败结点处,此时,将新元素插入该失败结点的上一层的叶子结点中。例如,为了在图8-24的4阶B-树中插入59,首先有哪些信誉好的足球投注网站新元素的插入位置。有哪些信誉好的足球投注网站在叶子结点的元素53和64之间的失败结点处失败,此时,可将新元素59和一个代表失败结点的空指针插入53和64之间。如果插入后该叶结点中包含的元素个数不超过m-1,则插入成功完成。 但本例中,插入59后,叶结点q中包含4个元素,已超过了4阶B-树的结点容量 见图8-25 a ,此时可创建一个新的B-树结点q,将图8-25 a 的结点中后一半的元素和指针存放到新结点q中,前半部分元素和指针仍然保存在q中,但位于 m/2 处的元素53,连同指向新结点的指针q一起,将存放到它的双亲结点中 见图8-25 b 。也就是说,结点q被一分为三,拆分点在位置 m/2 处,位于该处的元素和指向新结点的指针,将一起存放到其双亲结点中,见图8-25 c 。 图8-25 在图8-24的B-树中插入59 a 插入59; b 结点分裂; c 插入59后的B-树 下面给出另一个B-树插入的例子。图8-26 a 是在3阶B-树中插入53,有哪些信誉好的足球投注网站在q结点的47和64之间的失败结点处失败,因此在q结点的47和64之间插入元素53和一个代表失败结点的空指针,见图8-26 b 和 c 。结点q在插入新元素53以后已产生溢出,需要分裂,分裂出现在结点q的第二个元素53处。分裂后,原结点q分成三部分,前一部分元素仍留在结点q中,后一部分元素建立一个新结点q 来存储它们,设q 是新结点的地址,那么元素53和指针q 将插入原q结点的双亲r中,见图8-26 d 和 e 。结点r还要再分裂,产生新结点r,元素53和指针r 将插入原r结点的双亲结点t中,即根结点中,见图8-26 f 和 g ,插入后的B-树见图8-26 h 。 图8-26 B-树的插入举例 从上面的例子我们可以得到如下的在B-树中插入新元素的方法: 1 在B-树中有哪些信誉好的足球投注网站给定关键字值的元
文档评论(0)