使用 B+ 树插入项目的正确和标准方法是什么?

What is the correct and standard way to insert item using B+ tree?

问题是b+树的答案有很多差异,因为他们的b+树算法不同。

我从网上找到了一些不同的 b+ 树插入算法。如下所示。

算法 1

https://imgur.com/a/uTtZBb2

算法 2

https://imgur.com/a/eMpvON5

算法 3

https://imgur.com/a/YznNLwm

算法 4

https://imgur.com/a/dxk6H27

我尝试了 2 个从图书馆得到的问题。有2个可能的答案,这让我很困惑。

https://imgur.com/a/yXW0gYQ

b+树是否有确切的答案或者有几种可能的答案?

*对不起,由于声誉不够,我无法插入图像。

我建议您查看第一张图片和最后一张,由于图表示例,它们更容易理解算法。 没有多个答案,所有图像都显示相同的算法,但它们可能使用不同的符号。 B+树的基本思想很简单

第一次L+1键插入直到创建根节点:

1.|您希望您的节点拥有多少个键?假设 L 是节点的长度(也就是节点中键的数量),例如 L=4。您开始将键插入节点,每次在节点中插入新键时,您都会对它们进行排序(每次插入新键时排序,第一次除外)。

2.|然后你有一个 if 语句检查节点是否已满,也就是节点中的 4 个键(使用计数器并在每次插入时增加它,然后将其与 L 进行比较)。

3.|如果一个节点完全分成两半,创建一个临时节点,您将在其中添加中间键并创建两个相互连接并连接到第一个的新节点。

L+1键插入后:

你自下而上地构建你的树。从叶节点开始

第一次拆分后,您将需要在树中搜索正确的位置以插入新密钥,因为您需要将其缩短,在插入前检查将插入密钥的节点是否已满,并且之后,如果它被拆分了。但是这次当你拆分一个节点时,你将你的中间键插入父节点,然后检查父节点是否已满。

在 B+ 树中插入所需的基本功能是 a) search_method(), b)a short_method() 然后 c)insertion() 另请参阅链接列表它是如何工作的