查找篇-B树和B+树

131 阅读1分钟

B树定义

B树又称多路平衡查找树,B树中所有结点的孩子个数的最大值称为B树的阶,通常用m表示。一棵m阶B树或为空树或满足如下性质:

  • 树中每个结点至多有m棵子树,即至多有m-1个关键字
  • 若根结点不是终端结点,则至少有两棵子树。
  • 除根结点外的所有非叶结点至少有ceil(m/2)棵子树,即至少有ceil(m/2) - 1个关键字
  • 所有非叶结点的关键字升序排列
  • 所有叶结点都出现在同一层,且不带任何信息,实际上这些结点不存在,指向这些结点的指针为空

B+和B树的主要区别

  • 在B+树中具有n个关键字的结点只含有n棵子树,即每个关键字对应一棵子树,而在B树中,n个关键字含有n+1棵子树。
  • 在B+树中,每个结点(非根内部结点)的关键字个数的范围是ceil(m/2) <= n <= m(根结点:1<=n<=m);在B树中,每个结点(非根结点)的关键字个数n的范围ceil(m/2) - 1 <= n <= m - 1(根结点:1 <= n <= m - 1)。
  • 在B+树中叶结点包含信息,所有非叶结点仅起索引作用,非叶结点中的每个索引项只包含对应子树的最大关键字和指向该子树的指针,不含有关键字对应记录的存储地址。
  • B+树中叶结点包含了全部关键字,即非叶结点出现的关键字也会出现在叶结点中,而在B树中则不然。
  • B+树可以方便的实现范围查找。