在介绍一下B-树之前,我们先来介绍一下m叉搜索树的概念。
m叉搜索树必须满足以下结构特点:
1)在对应的扩充搜索树(用外部节点代替零指针),每个内部节点最多可以有m个子女即m-1个元素。
2)每个含有p个元素的节点有p+1个子女。
3)考察含有p个元素的任意节点,
设k1……kp是这些元素的关键值。
这些元素按顺序排列,即k1<k2<k3……<kp。
设c0……cp是节点的p+1个孩子。
以c0为根的子树中的元素关键值均小于k1,以cp为根的子树中的元素关键值均大于kp,以ci为根的子树中的元素关键值均大于k i小于k i+1 。
下图给出了一棵七叉搜索树。
黑色方块标注了外部节点,其他所有节点都是内部节点。
先看这个头结点,包含了两个元素和三个子女:
两个元素的关键值分别为10和80,
三个子女的元素个数分别为1、6、4,孩子个数依次加一,为2,7,5。
接下来简单的介绍一下m叉搜索树的搜索,插入,删除等操作。
1.搜索。
搜索操作其实非常简单,从根节点开始,如果要搜索的元素在根节点的某两个连续的元素之间的话,
就沿着它们中间的指针往下搜索。
如果遇到节点元素的关键值和搜索值相等,则说明搜索成功。
举例:搜索38元素