码迷,mamicode.com
首页 > 其他好文 > 详细

B-树 B+树复习总结

时间:2018-07-08 01:03:15      阅读:142      评论:0      收藏:0      [点我收藏+]

标签:bsp   一个   不成功   三次   strong   条件   分支   关键字   b-树   

一、B-树的定义

       一棵m阶的B-树或为空树,或为具有以下特性的m叉树

      1、树中每个结点至多有m棵子树 (m-1个关键字)

      2、根结点至少有两棵子树 (至少有一个关键字)

      3、除根节点的分支结点至少有floor(m/2)棵子树 (floor(m/2)个关键字)

      4、所有的非终端结点至多有 m-1个关键字

二、B-树的查找   查找k

      B-树的查找与二叉有序树的查找类似

      先在根结点查找关键字k,若找到则ok,若只有ki<k<k(i=1),则沿着pi的分支往下查找子树

    

      根据B-树的定义:

      第一层至少有1个结点,第二层至少2个结点,第三次 2*floor(m/2),第四层 2*floor(m/2)*floor(m/2)

      类比第h+1层至少有2*(floor(m/2))^h-1。而第i+1层的结点为叶子结点。若m阶B-树具有N个关键字,

      那么叶子结点即查找不成功的结点为N+1

      N+1>=2*(floor(m/2))^h-1 ------> h=log floor(m/2) [ (N+1)/2] +1 

三、B-树的插入

      当某个节点的关键字的个数小于 m-1时,则直接插入该节点

      当该节点的关键字等于m-1时,插入k时,需要将该结点 以中间关键字为界限将结点一分为2,并把中间关键字插入到父节点中

四、B-树的删除

       m阶B-树的删除操作是在B-树的某个结点中删除指定的关键字和邻近的一个指针,,删除后对B-树进行调整,使其继续满足B-树的定义

       根据定义,B-树中除根结点的分支结点中的关键字的个数为[ floor(m/2),m-1] ,若删除关键字后,关键字的个数仍满足上述条件,则直接删除,若否,则需要调整

       当删除该关键字后,可以以其左(右)分支最大(小)的关键代替删除关键字的位置,然后删除该关键字,故删除任何一个结点都可以转化为删除最下层的某个关键字

     

 

B-树 B+树复习总结

标签:bsp   一个   不成功   三次   strong   条件   分支   关键字   b-树   

原文地址:https://www.cnblogs.com/houchen/p/9278910.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!