数据结构__B树.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《数据结构__B树.ppt》由会员分享,可在线阅读,更多相关《数据结构__B树.ppt(45页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、n nB树树动态查找结构动态查找结构n n现现在在我我们们所所讨讨论论的的m路路查查找找树树多多为为可可以以动动态态调调整的多路查找树,它的一般定义为:整的多路查找树,它的一般定义为:n n一一棵棵m路路查查找找树树,它它或或者者是是一一棵棵空空树树,或或者者是是满满足如下性质的树:足如下性质的树:uu 根最多有根最多有 m 棵子树棵子树,并具有如下的结构:并具有如下的结构:n,A0,(K1,A1),(K2,A2),(Kn,An)其其中中,Ai 是是指指向向子子树树的的指指针针,0 i n m;Ki 是关键码,是关键码,1 i n m。Ki Ki+1,1 i n。动态的动态的m路查找树路查找树
2、uu 在子树在子树 Ai 中所有的关键码都中所有的关键码都小于小于 Ki+1,且且大于大于 Ki,0 i n。uu 在子树在子树 An 中所有的关键码都中所有的关键码都大于大于Kn;uu 在子树在子树 A0 中的所有关键码都中的所有关键码都小于小于 K1。uu 子树子树 Ai 也是也是 m 路查找树,路查找树,0 i n。一棵一棵3路查找树的示例路查找树的示例AVL树是树是2路查找树。如果已知路查找树。如果已知m路查找树的度路查找树的度 m和它的高度和它的高度 h,则树中的最大结点数为则树中的最大结点数为(等比级数前等比级数前 h 项求和项求和)n n每每个个结结点点中中最最多多有有 m-1
3、个个关关键键码码,在在一一棵棵高高度度为为 h 的的 m 路路查查找找树树中中关关键键码码的的最最大大个个数数为为 mh+1-1。uu 对对于于高高度度 h=2 的的二二叉叉树树,关关键键码码最最大大个个数数为为7;uu 对对于于高高度度 h=3 的的3路路查查找找树树,关关键键码码最最大大个个数为数为 34-1=80。n n提提高高查查找找树树的的路路数数 m,可可以以改改善善树树的的查查找找性性能能。对对于于给给定定的的关关键键码码数数 n,如如果果查查找找树树是是平平衡衡的的,可可以以使使 m 路路查查找找树树的的性性能能接接近近最最佳佳。下下面面我我们们将将讨讨论论一一种种称称之之为为
4、B-树树的的平平衡衡的的 m 路路查查找找树树。在在B-树树中中我我们们引引入入“失失败败”结结点点。一一个个失失败败结结点是当查找值点是当查找值x不在树中时才能到达的结点。不在树中时才能到达的结点。B-树树n n一棵一棵一棵一棵 m m 阶阶阶阶B-B-树是一棵树是一棵树是一棵树是一棵 m m 路查找树,它或者是空树,或路查找树,它或者是空树,或路查找树,它或者是空树,或路查找树,它或者是空树,或者是满足下列性质的树:者是满足下列性质的树:者是满足下列性质的树:者是满足下列性质的树:uu树中每个结点至多有树中每个结点至多有树中每个结点至多有树中每个结点至多有mm棵子树;棵子树;棵子树;棵子树
5、;uu 根结点至少有根结点至少有 2 棵子树;棵子树;uu 除根结点以外的所有非终端结点至少有除根结点以外的所有非终端结点至少有 m/2 棵棵子树;子树;uu 所有非终端结点中包含下列信息数据所有非终端结点中包含下列信息数据 (n,A(n,A0 0,K,K1 1,A,A1 1,K,K2 2,A,A2 2,K Kn n ,A,An n),其中:其中:其中:其中:K Ki i (i=1,n)(i=1,n)为关键字为关键字为关键字为关键字,且,且,且,且K Ki i K Ki+1 i+1,A,Ai i(i=0,n)(i=0,n)为指向子树根为指向子树根为指向子树根为指向子树根结点的指针结点的指针结点
6、的指针结点的指针,n n为关键字的个数为关键字的个数为关键字的个数为关键字的个数uu 所有的叶子结点(失败结点)都位于同一层。所有的叶子结点(失败结点)都位于同一层。事实上,每个结点中还应包含指向每个关键字的记事实上,每个结点中还应包含指向每个关键字的记录的指针。录的指针。非非B-树树 B-树树 B-树的查找算法树的查找算法n nB-树树的的查查找找过过程程是是一一个个顺顺指指针针查查找找结结点点和和在在结结点点的的关关键键字字进进行行查查找找交交叉叉进进行行的的过过程程。因因此此,B-树树的的查查找找时时间间与与B-树树的的阶阶数数m和和B-树树的的高高度度h直接有关,必须加以权衡。直接有关
7、,必须加以权衡。n n在在B-树树上上进进行行查查找找,查查找找成成功功所所需需的的时时间间取取决决于于关关键键码码所所在在的的层层次次,查查找找不不成成功功所所需需的的时时间间取取决决于于树树的的高高度度。如如果果我我们们定定义义B-树树的的高高度度h 为为失失败败结结点点所所在在的的层层次次,需需要要了了解解树树的的高高度度h 与与树树中的关键码个数中的关键码个数 N 之间的关系。之间的关系。n n设在设在 m 阶阶B-树中,失败结点位于第树中,失败结点位于第 h+1层。在层。在这棵这棵B-树中关键码个数树中关键码个数 N 最小能达到多少?最小能达到多少?从从B-树的定义知树的定义知,uu
8、 1层层 1 个结点个结点uu 2层层 至少至少 2 个结点个结点uu 3层层 至少至少 2 m/2 个结点个结点uu 4层层 至少至少 2 m/2 2 个结点个结点uu 如此类推,如此类推,uu h 层层 至少有至少有2 m/2 h-2个结点。所有这些个结点。所有这些结点都不是失败结点。结点都不是失败结点。高度高度h与关键码个数与关键码个数 N 之间的关系之间的关系n n若树中关键码有若树中关键码有 N 个个,则失败结点数为则失败结点数为 N+1。这是因为失败一般发生在这是因为失败一般发生在 Ki x Ki+1,0 i N,设,设K0=-,KN+1=+。因此,有因此,有 N+1=失败结点数失
9、败结点数=位于第位于第 h+1 层的结点数层的结点数 2 m/2 h-1 N 2 m/2 h-1-1n n反之,如果在一棵反之,如果在一棵 m 阶阶B-树中有树中有 N 个关键码,个关键码,则所有的非失败结点所在层次都小于则所有的非失败结点所在层次都小于 h,则则 h-1 log m/2 (N+1)/2)n n示例:若示例:若B-树的阶数树的阶数 m=199,关键码总数关键码总数 N=1999999,则则B-树的高度树的高度 h 不超过不超过 log100 1000000+1=4n n若若B-树的阶数树的阶数 m=3,高度高度 h=4,则关键码总则关键码总数至少为数至少为 N=2 3/2 4-
10、1-1=15。m值的选择值的选择n n如果提高如果提高B-树的阶数树的阶数 m,可以减少树的高度,可以减少树的高度,从而减少读入结点的次数,因而可减少读磁盘从而减少读入结点的次数,因而可减少读磁盘的次数。的次数。n n事实上,事实上,m 受到内存可使用空间的限制。当受到内存可使用空间的限制。当 m很大超出内存工作区容量时,结点不能一次读很大超出内存工作区容量时,结点不能一次读入到内存,增加了读盘次数,也增加了结点内入到内存,增加了读盘次数,也增加了结点内查找的难度。查找的难度。n nm值的选择:应使得在值的选择:应使得在B-树中找到关键码树中找到关键码 x 的的时间总量达到最小。时间总量达到最
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 _B
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内