Ich versuche, einen B + Baum mit der folgenden Sequenz, erstellenB + Baum Einfügen Verständnis
10 20 30 40 50 60 70 80 90 100
alle Indexknoten haben mindestens 2 und maximal 3 Tasten sollen. Ich konnte bis 90 einfügen, aber sobald 100 einfügen, erhöht es die Höhe von 2 bis 3.
Das Problem ist das zweite Kind der Wurzel hat einen Knoten, und ich kann es nicht beheben. Es sollte mindestens 2 haben, oder? Kann mich jemand führen?
UPDATE: Ich folge diesem Algorithmus
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)
P. S: Ich bin es manuell zu tun, mit der Hand, um den Algorithmus zu verstehen. Es gibt keinen Code!
Führer, ohne dass Sie alle Ihre Code zu sehen? Wir können unmöglich wissen, was dein Code falsch macht. Haben Sie einen Verdacht, was das Problem sein könnte? – usr
@ usr- Es gibt keinen Code, ich mache es mit der Hand! Und deshalb gibt es kein Sprach-Tag, seine Algorithmen. – questions
Dann zeigen Sie uns, welche Regeln Sie verwenden. – RBarryYoung