J jackchin Unregistered / Unconfirmed GUEST, unregistred user! 2004-02-03 #2 数据结构的教科书有讲, 详细的数据库方面的书大概也有, 大概是用于维护索引用的, 使插入新记录时做到要搬家的 数据少, 又能有很好的查找性能 没有必要细究这些低层的技术, 我们用数据库不会觉察有 什么B树,B+树
数据结构的教科书有讲, 详细的数据库方面的书大概也有, 大概是用于维护索引用的, 使插入新记录时做到要搬家的 数据少, 又能有很好的查找性能 没有必要细究这些低层的技术, 我们用数据库不会觉察有 什么B树,B+树
C cnzhw007 Unregistered / Unconfirmed GUEST, unregistred user! 2004-02-06 #3 B-树的定义 1、B-树的定义 一棵m(m≥3)阶的B-树是满足如下性质的m叉树: (1)每个结点至少包含下列数据域: (j,P0,Kl,P1,K2,…,Ki,Pi) 其中: j为关键字总数 Ki(1≤i≤j)是关键字,关键字序列递增有序:K1 <K2<…<Ki。 Pi(0≤i≤j)是孩子指针。对于叶结点,每个Pi为空指针。 注意: ①实用中为节省空间,叶结点中可省去指针域Pi,但必须在每个结点中增加一个标志域leaf,其值为真时表示叶结点,否则为内部结点。 ②在每个内部结点中,假设用keys(Pi)来表示子树Pi中的所有关键字,则有: keys(P0)<K1<keys(P1)<K2<…<Ki<keys(Pi) 即关键字是分界点,任一关键字Ki左边子树中的所有关键字均小于Ki,右边子树中的所有关键字均大于Ki。 (2)所有叶子是在同一层上,叶子的层数为树的高度h。 (3)每个非根结点中所包含的关键字个数j满足: (m/2)-1<=j<=m-1。 即每个非根结点至少应有 (m-2)-1个关键字,至多有m-1个关键字。 因为每个内部结点的度数正好是关键字总数加1,故每个非根的内部结点至少有(m/2)子树,至多有m棵子树。 (4)若树非空,则根至少有1个关键字,故若根不是叶子,则它至少有2棵子树。根至多有m-1个关键字,故至多有m棵子树。
B-树的定义 1、B-树的定义 一棵m(m≥3)阶的B-树是满足如下性质的m叉树: (1)每个结点至少包含下列数据域: (j,P0,Kl,P1,K2,…,Ki,Pi) 其中: j为关键字总数 Ki(1≤i≤j)是关键字,关键字序列递增有序:K1 <K2<…<Ki。 Pi(0≤i≤j)是孩子指针。对于叶结点,每个Pi为空指针。 注意: ①实用中为节省空间,叶结点中可省去指针域Pi,但必须在每个结点中增加一个标志域leaf,其值为真时表示叶结点,否则为内部结点。 ②在每个内部结点中,假设用keys(Pi)来表示子树Pi中的所有关键字,则有: keys(P0)<K1<keys(P1)<K2<…<Ki<keys(Pi) 即关键字是分界点,任一关键字Ki左边子树中的所有关键字均小于Ki,右边子树中的所有关键字均大于Ki。 (2)所有叶子是在同一层上,叶子的层数为树的高度h。 (3)每个非根结点中所包含的关键字个数j满足: (m/2)-1<=j<=m-1。 即每个非根结点至少应有 (m-2)-1个关键字,至多有m-1个关键字。 因为每个内部结点的度数正好是关键字总数加1,故每个非根的内部结点至少有(m/2)子树,至多有m棵子树。 (4)若树非空,则根至少有1个关键字,故若根不是叶子,则它至少有2棵子树。根至多有m-1个关键字,故至多有m棵子树。
C cslotus Unregistered / Unconfirmed GUEST, unregistred user! 2004-03-28 #4 归纳起来,B树具有以下特点: 1.m阶的B树中每个结点至多有m棵子树 2.若根结点不是叶子结点,则至少有2棵子树 3.除根以外所有中间结点至少有m/2棵子树 4.中间结点的关键字从小到大排列,且左子树关键字的值均小于右子树 5.所有叶子结点均在同一层,且不带任何信息
归纳起来,B树具有以下特点: 1.m阶的B树中每个结点至多有m棵子树 2.若根结点不是叶子结点,则至少有2棵子树 3.除根以外所有中间结点至少有m/2棵子树 4.中间结点的关键字从小到大排列,且左子树关键字的值均小于右子树 5.所有叶子结点均在同一层,且不带任何信息
L lintoms Unregistered / Unconfirmed GUEST, unregistred user! 2004-03-28 #5 《<程序员》2002年合订本文章“数据库算法。。”一文中有B树概念及实现