将键为(1、2、3、4、5)的记录输入到一个初始为空的B+-m = 3阶树的结果。如果溢出,分裂节点,不重新分配邻居的钥匙。是否可以以不同的顺序使用键输入记录以获得高度较低的树?
我不擅长这个,但我试着在左边做 ≤ ,在右边做 > :
直到插入 1,2 :
然后,就我们必须拆分节点而不是将密钥重新分配给邻居(我将其理解为子节点)而言,我只在带有 2 的单元格右侧插入:
我在插入 5 时继续做同样的事情:
但这很奇怪,我从来没有见过这样的空节点......而且我不知道它是否尊重一些非常基本的 B 树属性:
- 每个节点最多有(m-1) 个键,至少有(⌈(m/2)⌉-1)个键,除非键可以为空,我会将键理解为“指针”。
第一次尝试:订单上的错误揭示了一个不明确的树
一开始我误解了什么是“订单”(每个节点的最大子节点数)。所以我认为一个节点可以有三个空格(因此有 4 个子节点。我认为我正在创建一个 4 阶树:
直到插入 1,2,3 :
插入 4,只要我们必须拆分节点而不是将密钥重新分配给邻居(这似乎是矛盾的),我会让 1,2,3 和 4,5 在 3 之后的右叶上: