B-树的定义

 当查找的文件较大,且存放在磁盘等直接存取设备中时,为了减少查找过程中对磁盘的读写次数,提高查找效率,基于直接存取设备的读写操作以"页"为单位的特征。
     1972年R.Bayer和E.M.McCreight提出了一种称之为B-树的多路平衡查找树。它适合在磁盘等直接存取设备上组织动态的查找表。

B-树的定义

1、B-树的定义

     一棵m(m≥3)阶的B-树是满足如下性质的m叉树:
(1)每个结点至少包含下列数据域:
    (j,P 0,K l,P 1,K 2,…,K i,P i)
  其中:
    j为关键字总数
    K i(1≤i≤j)是关键字,关键字序列递增有序:K 1 2<…i。
    P i(0≤i≤j)是孩子指针。对于叶结点,每个P i为空指针。
  注意:
     ①实用中为节省空间,叶结点中可省去指针域P i,但必须在每个结点中增加一个标志域leaf,其值为真时表示叶结点,否则为内部结点。
  ②在每个内部结点中,假设用keys(Pi)来表示子树Pi中的所有关键字,则有:
       keys(P 0)11)2<…ii)
即关键字是分界点,任一关键字Ki左边子树中的所有关键字均小于K i,右边子树中的所有关键字均大于K i
(2)所有叶子是在同一层上,叶子的层数为树的高度h。
(3)每个非根结点中所包含的关键字个数j满足:
                       

     即每个非根结点至少应有 个关键字,至多有m-1个关键字。
     因为每个内部结点的度数正好是关键字总数加1,故每个非根的内部结点至少有 子树,至多有m棵子树。
(4)若树非空,则根至少有1个关键字,故若根不是叶子,则它至少有2棵子树。根至多有m-1个关键字,故至多有m棵子树。

你可能感兴趣的:(c/c++/vc,磁盘)