一、B树:是空树,或者是满足下列性质的树:
一棵m阶(最多m个子树)B树(balanced tree of order m)是一棵平衡的m路搜索树
1、根结点至少有两个子树
2、每个非根结点所包含的关键字个数 j 满足:m/2 - 1 <= j <= m - 1
如:M=11 则, 5 <= 结点关键字个数 j <= 10 而 6 <= 结点子树个数 k <= 11
3、除根结点以外的所有结点(不包括叶子结点)的度数(结点的子树个数)正好是关键字总数加1,故内部子树个数 k 满足:m/2 <= k <= m
4、所有的叶子结点都位于同一层
一棵m阶(最多m个子树)B树(balanced tree of order m)是一棵平衡的m路搜索树
1、根结点至少有两个子树
2、每个非根结点所包含的关键字个数 j 满足:m/2 - 1 <= j <= m - 1
如:M=11 则, 5 <= 结点关键字个数 j <= 10 而 6 <= 结点子树个数 k <= 11
3、除根结点以外的所有结点(不包括叶子结点)的度数(结点的子树个数)正好是关键字总数加1,故内部子树个数 k 满足:m/2 <= k <= m
4、所有的叶子结点都位于同一层
二、B+树:
B+树是应文件系统所需而出的一种B树的变型树。
一棵m阶的B+树和m阶的B树的差异在于:
1.有n棵子树的结点中含有n个关键字,每个关键字不保存数据,只用来索引,所有数据都保存在叶子结点
2.所有的叶子结点中包含了全部关键字的信息,及指向含这些关键字记录的指针,且叶子结点本身依关键字的大小自小而大顺序链接
3.所有的非终端结点可以看成是索引部分,结点中仅含其子树中的最大(或最小)关键字
通常在B+树上有两个头指针,一个指向根结点,一个指向关键字最小的叶子结点