B*树是B+树的一种变形,它更适合与实际应用中操作系统的文件索引和数据库索引

对于一个m阶B*树:(B+树和B*树唯一的区别即叶子节点有没有指向下一个叶子节点的指针)

除根节点外的内部节点,每个节点最多有m个关键字,最少有⌈m/2⌉个关键字,其中每个关键字对应一个子树

根节点要么没有子树,要么至少有两颗子树

所有叶子节点包含了全部的关键字以及这些关键字指向文件的指针,并且

      所有叶子节点的关键字按大小顺序排列

      相邻的叶子节点顺序链接(相当于构成了一个顺序链表)

      所有叶子节点在同一层

所有分支节点的关键字都是对应子树中关键字的最大值

B+树实例

B树系列(B+树、B*树)

B*树实例

B树系列(B+树、B*树)

生成一颗B*(m=3)树:6 10 4 14 5 11 15 3 2

1)插入前三个元素的时候,只需要在根节点中进行插入即可

      B树系列(B+树、B*树)

2)插入14时,需要改变树结构

      B树系列(B+树、B*树)

3)插入5

      B树系列(B+树、B*树)

4)插入11

      B树系列(B+树、B*树)

5)插入15

      B树系列(B+树、B*树)

6)插入3

      B树系列(B+树、B*树)

7)插入2

      B树系列(B+树、B*树)

B+树与B树的不同之处在于,他的所有节点都存在叶子节点中,并且在B数据基础上还会维护一个指针用来指向下一个叶子节点

相关文章:

  • 2021-08-16
  • 2022-01-31
猜你喜欢
  • 2021-08-14
  • 2021-10-07
  • 2022-12-23
  • 2021-11-24
  • 2021-08-09
相关资源
相似解决方案