- 1、本文档共96页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
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 ≤K Ai ,。 (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所在结点的路径涉及的结点数目不超过: log?m/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) 其中 KiKi+1 1≤im 此时可将*p结点分裂为*p和*p’两个结点,以?m/2?为分裂中心,其前一部分,放在*p结点中,后一部分放在*p’结点中。 其中:*p结点中含有信息为 ?m/2?-1,A0,(K1 ,A1),……(K?m/2?-1,A?m/2?-1) *p’结点中含有信息为 m-?m/2?,A?m/2?,(K?m/2?+1,A?m/2?+1),……(Km ,Am) 而关键字K?m/2? 和指向*p’的指针一起插入到*p的双亲结点中。 五、B-树和B+树 9.2 动态查找表 Status SearchBST(BiTree T, KeyType key, BiTree f, BiTree p) { //查找不成功,p指向查找路径上访问的最后一个结点 if(!T) {p=f;return FALSE;} else if (key==T-data.key) {p=T; return TRUE;} //查找成功,p指向找到的结点 else if (keyT-data.key) return SearchBST(T-lchild, key, T, p); else return SearchBST(T-rchild, key, T, p); } Status Insert_BST(BiTree T, ElemType
您可能关注的文档
- 湿地公园案例研究分析——经典.ppt
- 石嘴山市耗能企业节能管理规范.doc
- 石钟山记1 1.ppt
- 石家庄电容器厂家直销各类电容器.doc
- 时辰与技击、养生.ppt
- 时代光华 风险管理-流动性风险管理 答案.doc
- 时代光华 以客户为中心的销售 考题答案.docx
- 时代光华企业战略管理答案.docx
- 时代光华-销量倍增—10招激活经销商百分试卷.docx
- 时代光华管理课堂“突破人才培养瓶颈- e-learning应用研讨会”自评及测试题.doc
- 施耐德电气--Gutor-石油石化行业的关键电力保障解决方案.pdf
- 泓格工业自动化产品选型目录.pdf
- RKC 高速数字控制器 HA400 900.pdf
- KENWOOD建伍DDX9017DABS,DDX9017S,DDX9017SM,DDX917WS,DDX917WSM,DMX7017BTS多媒体English Instruction manual (Asia)说明书用户手册.pdf
- 降低工程设计 6p.pdf
- 如何使用SIMATIC NET PC软件组态PC站在OPC服务器(DP从站)与第三方(作为DP主站)进行通讯.pdf
- ABB高压电机 AMS 同步电动机(中文介绍).pdf
- KENWOOD建伍DDX9016DABS,DDX9016S,DDX9016SM,DDX916WS,DDX916WSM多媒体Indonesian Instruction manual说明书用户手册.pdf
- PCS 7中CFC编程常见问题集.pdf
- 德国di-soric全系列产品样本.pdf
文档评论(0)