B*-Bäume

skript S. 122ff

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

B-Bäume*
Ich hab hier so ein Problem mit B*-Bäumen (das sind die die nur in den Blättern die Datensätze haben).

Was mache ich wenn ich in einen vollen B*-Baum noch ein Element einfügen will? Also z.B. pro Knoten maximal zwei Einträge (k,k*=1), dann ist der Baum mit 6 Elementen (1…6) voll, im Wurzelknoten sind dann die beiden Referenzschlüssel 2 und 4.
Ich kann mir nach dem Einfügen von Element 7 natürlich irgendeinen Baum zusammenbasteln der auch die B*-Baum Bedingungen erfüllt, aber ich habe jetzt keine exakten Regeln gefunden wie ich die Referenzschlüssel belegen muss oder wieviele Blätter ich machen soll (die neue Tiefe ist dann 2, mit entweder 7 halb leeren Blättern oder mit 4 vollen Blättern).


ja das würde mich auch interessieren…
kennt zufällig jemand ein gutes B / B* Baum Applet das das Einfügen / Löschen vielleicht animiert zeigt (oder kann das jemand schnell programmieren … :smiley: )


War da nicht eins im Algo2-Forum?


http://sky.fit.qut.edu.au/~maire/baobab/baobab.html

hübsch isses nicht aber es funktioniert … allerdings nur ganz normaler b-baum ohne b*-baum und ohne datenbankler-schnickschnack


ne andere Frage: Wenn ich nen Schlüssel A hab kommt dann der Wert/Datensatz A links oder rechts von dem Schlüssel ins Blatt?
In ner Musterlösung aus ner alten Dresdner Klausur von MW kommt das links, in ner Musterlösung für ne Klausur von der Uni Frankfurt kommt das rechts :anx:


kommt drauf an, ob du das praktisch oder philosophisch fragst:
praktisch issses wohl egal, philosophisch würd ich mich wenigstens in der klausur an den MW halten…


Hab noch ein Applet gefunden, leider nur B-Baum:
http://www.fh-augsburg.de/~mweiss/applets/bTree.shower2.html


Nur mal so, B* Baum heißt auf englisch B+ Tree, google spuckt da jede Menge für aus :slight_smile:


toll, dass du auch gleich ein beispiel hier reingepackt hast und uns allen das suchen ersparst…


lol, also du bist zu faul ein google Fenster aufzumachen, aber wirfst mir genau das vor :wink: Aber ich mag mal nich sein:

http://www.seanster.com/BplusTree/BplusTree.html


aus diesem applet geht hervor, dass ein neues Mischen (wie auf seite 143 im Skript erklärt) nicht gemacht wird. Wie ist es nun: soll man Mischen, wenn ein Splitt dadurch umgangen werden kann oder nicht? (siehe 142 bzw. 143)