B树
一种平衡多路查找树:
平衡的意思就是左右子树高度差不超过1
多路查找就是有多条路径来查找
树中结点最大的孩子数目成为B树的阶。记为m
B树的性质
一颗m阶B树要么是空树,要么是满足以下特性的m叉树
*1*树中每个结点最多有m棵子树,最多有m-1个关键字。即棵子树夹着一个关键字
*2*若根节点不是终端结点,则最少有两个子树。即至少一个关键字
*3*除根结点之外的所有 非叶节点 至少有m/2棵子树,即至少m/2-1个关键字
*4*所有叶结点出现在同一个深度,不带信息。
非叶结点的结构
ki是关键字(递增),pi是子树根结点的指针
查找操作
根据关键字来查找,不赘述
插入操作
因为有关键字数量,平衡的限制,所以不可以像二叉搜索树那样找到终端结点位置插入。
其中很重要的操作:分裂,如果结点上的关键字数量大于m-1,则要进行分裂操作
分裂操作方法(两种情况):
>如果父结点是饱和的话:关键字数量等