B树(B-tree, 平衡的多路查找树)的相关知识

目录

多路搜索树

B树

B+树:


多路搜索树

首先,介绍一下2-3树,指的是其中每一个节点2结点--有两个孩子或者3结点--三个孩子或者没有孩子,2节点指的是该节点有一个元素和两个孩子OR没有孩子,3节点指的是该节点有两个元素(一大一小)和三个孩子OR没有孩子。

特点是所有叶子节点都在同一层,插入和删除节点都必须保证顺序和性质不变。左子树小于根节点元素小于中子树小于右根节点元素小于左子树。

2-3-4树和2-3树差不多。

B树

B树的结构是一种平衡的多路查找树:节点数最大的孩子数目称为B树的阶(order);

B树的属性:

  • 如果根节点不是叶子节点,则至少有两棵字数;
  • 每一个非根的分支节点都有k-1个元素和k个孩子,其中\dagger m/2 \dagger\leq k\leq m ,每一个叶子结点都有k个元素,其中\dagger m/2 \dagger\leq k\leq m
  • 所有的叶子节点都位于同一层次
  • 分支节点信息包括(n,A_{0},K_{1},A_{1},K_{2},A_{2},K_{3}......A_{n-1},K_{n},A_{n}),其中有顺序。

B树的结构就是为内外存的数据交换准备的。

B树最坏的搜索情况:第一层有一个节点,第二层有两个,除去根节点,其余层每个节点至少有\dagger m/2 \dagger棵子树,则第三层有2*\dagger m/2 \dagger,若m阶有n+1个关键字,即n+1 \leqslant 2*(\dagger m/2 \dagger)^{k-1},即k\leqslant log_{\dagger m/2 \dagger}(\frac{n+1}{2})+1

B+树:

B+树结构适合带有范围的查找。

B+树是应文件系统所需而出的一种B树的变形树,在B+ 树中,出现在分支结点中的元素,会被当作他们在该分支结点位置的中序后继者(叶子结点)中再次出现。另外,每一个叶子节点都会保存一个指向后一叶子结点的指针。

B+树和B树之间的差异在于:

  • 有n棵子树的结点中包含有n个关键字
  • 所有的叶子结点包含全部关键字信息,及指向含这些关键字记录的指针,叶子节点本身依关键字的大小自小而大顺序连接
  • 所有分支结点可以看成索引,结点中仅含有其子树中的最大(最小)关键字。

 

 

猜你喜欢

转载自blog.csdn.net/QiwzDeBLOG/article/details/82261732