B树的定义:

1.若根结点不是终端结点,则至少有2棵子树

2.每个中间节点都包含k-1个元素和k个孩子,其中 m/2 <= k <= m

3.每一个叶子节点都包含k-1个元素,其中 m/2 <= k <= m

4.所有的叶子结点都位于同一层。

5.每个节点中的元素从小到大排列,节点当中k-1个元素正好是k个孩子包含的元素的值域分划。

树——B-树-LMLPHP

B树的优点:

  优化二叉树的高度,以便减小磁盘IO的次数,提高访问效率。构造一个m阶的B树,尽量多地在结点上存储相关的信息,保证层数尽量的少,以便后面我们可以更快的找到信息,磁盘的I/O操作也少一些,而且B类树是平衡树,每个结点到叶子结点的高度都是相同,这也保证了每个查询是稳定的。

B树查找数据

(1)从根节点开始比较,如果查找的数据比根节点小,就去左子树继续遍历查找,否则去右子树遍历查找

(2)与子树的多个关键字进行比较,找到它所处的范围,然后去范围对应的子树中继续查找

(3)以此循环,直到找到或者到叶子节点还没找到为止

B树的增删过程

漫画:什么是B-树?

B树的作用:文件系统以及部分数据库索引,如MongoDB

05-11 02:21