m路搜索树,B树,B+树

m路搜索树

定义:一课m路搜索树是一课空树,或者满足以下性质:

        (1)根节点最多有m棵子树,并具有如下数据结构:

                              n,P0,(K1,P1),(K2,P2),....,(Kn,Pn)

            其中n是关键码个数,Pi是指向子树的指针,0<=i<=n

          (2)Ki

           (3)在子树Pi中所有的关键码都小于Ki+1,且大于Ki,0

           (4)在子树Pn中所有关键码都大于Kn,而子树P0中的所有关键码都小于K1

           (5)子树Pi也是m路搜索树

例如:m路搜索树,B树,B+树_第1张图片

结点a的格式为2,b,(20,c),(40,d)     结点c的格式为2,0,(25,0)(30,e)


B树

定义:一课空树或者一棵平衡m路搜索树并满足下列性质

         (1)根节点至少有两个子女

         (2)除根结点以外的所有结点(不包括失败的结点)知道有(m/2)向上取整个子女

          (3)所有的失败结点都位于同一层

例如:

m路搜索树,B树,B+树_第2张图片

B树的插入:1.当结点中有少于m-1个关键码时可以直接将关键码加入到结点中

                  2.当结点中已经有m-1个关键码时,插入时,需要做分裂操作,将多的结点放入子结点中,并且B树的性质不能改变

                     例如:对m路搜索树,B树,B+树_第3张图片插入139后,分裂成m路搜索树,B树,B+树_第4张图片

B树的删除:1.删除某个结点不改变B树的性质则直接删除

                  2.删除会改变B树的性质,则需要像B树插入时,做一些调整,使B树的性质不改变


B+树

定义:B+树是B树的特殊情况,与B树的不同之处在于:

       (1)所有关键码都存放在叶结点中,上层非叶结点的关键码是其子孙树中的最小或者最大关键码

       (2)叶结点包含了全部关键码,叶结点本身按关键码从小到大顺序链接

例如:m路搜索树,B树,B+树_第5张图片

 

摘自:<<数据结构>>

你可能感兴趣的:(数据结构)