数据结构与算法-多路查找树

多路查找树(muitl-way search tree),其每一个节点的孩子数可以多于两个,且每一个节点处可以存储多个元素。

B树

B树(BalanceTree)是对二叉查找树的改进。它的设计思想是,将相关数据尽量集中在一起,以便一次读取多个数据,减少硬盘操作次数。
一棵m阶的B 树 (m叉树)的特性如下:

  • B树中所有节点的孩子节点数中的最大值称为B树的阶,记为M
  • 树中的每个节点至多有M棵子树 ---即:如果定了M,则这个B树中任何节点的子节点数量都不能超过M
  • 若根节点不是终端节点,则至少有两棵子树
  • 除根节点和叶节点外,所有点至少有m/2棵子树
  • 所有的叶子结点都位于同一层

image

B+树

B+树是B-树的变体,也是一种多路搜索树,其定义基本与B树相同,它的自身特征是:

  • 非叶子结点的子树指针与关键字个数相同
  • 非叶子结点的子树指针P[i],指向关键字值属于[K[i], K[i+1])的子树
  • 为所有叶子结点增加一个链指针
  • 所有关键字都在叶子结点出现
    image

数据结构和算法的可视化网站:https://www.cs.usfca.edu/~galles/visualization/Algorithms.html

B树和B+树的区别

  1. B+树中只有叶子节点会带有指向记录的指针(ROWID),而B树则所有节点都带有,在内部节点出现的索引项不会再出现在叶子节点中。

  2. B+树中所有叶子节点都是通过指针连接在一起,而B树不会。

posted @ 2021-11-17 22:50  狻猊的主人  阅读(68)  评论(0编辑  收藏  举报