次のシーケンスで B+ ツリーを作成しようとしています。
10 20 30 40 50 60 70 80 90 100
すべてのインデックス ノードには、最小で 2 つ、最大で 3 つのキーが必要です。90までは挿せましたが、100を挿すとすぐに2から3に高さが上がります。
問題は、ルートの 2 番目の子にノードが 1 つあり、修正できません。少なくとも2つあるはずですよね?誰かが私を案内できますか?
更新:私はこのアルゴリズムに従っています
If the bucket is not full (at most b - 1 entries after the insertion), add the record.
Otherwise, split the bucket.
Allocate new leaf and move half the bucket's elements to the new bucket.
Insert the new leaf's smallest key and address into the parent.
If the parent is full, split it too.
Add the middle key to the parent node.
Repeat until a parent is found that need not split.
If the root splits, create a new root which has one key and two pointers. (That is, the value that gets pushed to the new root gets removed from the original node)
PS: アルゴリズムを理解するために、手作業で行っています。コードはありません!