多路查找树
多路查找树:每一个结点的孩子数可以多于两个,且每一个结点处可以存储多个元素
2结点树:一个2结点树包含一个元素和两个孩子(或没有孩子),且与二叉排序树类似,左子树包含的元素小于该元素,右子树包含的元素大于该元素;不过,与二叉排序树不同的是,这个2结点要么没有孩子,要有就有两个,不能只有一个孩子。
3结点树:一个3结点树包含一小一大两个元素和三个孩子(或没有孩子),一个3结点要么没有孩子,要么具有3个孩子;如果某个3结点有孩子的话,左子树包含小于较小元素的元素,右子树包含大于较大元素的元素,中间子树包含介于两元素之间的元素。
4结点树:一个4结点树要么没有孩子,要么具有4个孩子,如果某个4结点有孩子的话,左子树包含小于最小元素的元素;第二子树包含大于最小元素,小于第二元素的元素;第三子树包含大于第二元素,小于最大元素的元素;右子树包含大于最大元素的元素。
[B树]
结点最大的孩子数目称为B树的阶,因此,2-3树是3阶B树,2-3-4树是4阶B树。
一个m阶的B树具有如下属性:
如果一个结点不是叶结点,则其至少有两棵子树;
每一个非根的分支结点都有k-1个元素和k个孩子;
所有分支结点包含下列信息数据 (n,A0 ,K1 ,A1 ,K2 ,A2 ,...,K n ,A n ),
其中:
Ki (i=1,2,...,n)为关键字,且Ki<Ki+1 (i=1,2,...,n-1);
Ai (i=0,2,...,n)为指向子树根结点的指针,且指针Ai-1所指子树中所有结点的关键字均小于Ki (i=1,2,...,n),An 所指子树中所有结点的关键字均大于Kn ,n(1≤n≤m-1)为关键字的个数(或n+1为子树的个数)。
查找次数
一棵m阶的B+树和m阶的B树的差异在于:
有n棵子树的结点中包含有n个关键字;
所有的叶子结点包含全部关键字的信息,及指向含这些关键字记录的指针,叶子结点本身依关键字的大小自小而大顺序链接;
所有分支结点可以看成是索引,结点中仅含有其子树中的最大(或最小)关键字。