2-4-Baum

2-4-Baum
2-3-4 Baum

Ein 2-3-4-Baum ist in der Informatik eine Datenstruktur, genauer ein B-Baum der Ordnung 4, das heißt, er ist ein Baum, in dem jeder Knoten zwei, drei oder maximal vier Kinder besitzt und entsprechend ein, zwei oder maximal drei Datenelemente speichert, die nach dem gewählten Ordnungskriterium aufsteigend sortiert sind. Er stellt damit zugleich einen speziellen balancierten Suchbaum dar.

Beispiel eines 2-3-4-Baums

Wie alle B-Bäume wird auch der 2-3-4-Baum häufig zur Speicherung großer Datenmengen verwendet. Das Suchen in diesen Bäumen ist mit einer Laufzeit von O(log n) möglich. Durch geschicktes Einfügen wird der 2-3-4-Baum stets balanciert gehalten.

Inhaltsverzeichnis

Suchen

Um in einem B-Baum und damit auch in einem 2-3-4-Baum zu suchen, wird ein einfacher Algorithmus angewendet. Beginnend beim kleinsten (linkesten) Element des Wurzelknotens:

  1. Vergleiche, ob der gesuchte Schlüssel gleich dem aktiven Element ist.
    • Wenn ja, Suche beendet.
    • Wenn nein, gehe zu 2.
  2. Vergleiche, ob der gesuchte Schlüssel kleiner ist als das aktive Elemente im aktiven Knoten.
    • Wenn ja, verzweige zum Kindknoten, der links vom gerade überprüften Element angehängt ist, setze dessen kleinstes Element als aktives Elements und gehe zu 1. zurück.
    • Wenn nein, markiere das nächstgrößere Element im aktiven Knoten als aktives Element und gehe zu 1. zurück. Gibt es kein größeres Element mehr im aktiven Knoten, verzweige zum Kindknoten rechts des aktiven Element und setze dessen kleinstes Element als aktives Element und gehe zurück zu 1.

Einfügen

  • Ein Knoten wird mit Elementen aufgefüllt, bis er drei Elemente enthält (vgl. B im Beispiel).
  • Wenn ein viertes Element aufgenommen werden soll, wird der Knoten gespalten in einen Knoten mit zwei Elementen (J K im Beispiel), einen Knoten mit einem Element (M im Beispiel) und ein mittleres Element (L im Beispiel), das in den Elternknoten aufgenommen wird (vgl. Schritt 2 im Beispiel).
  • Ist der Elternknoten voll besetzt, wird das Element im Baum weiter nach oben gereicht. Erreicht das Element die Wurzel des Baumes und ist dieser schon mit drei Elementen besetzt, wird eine neue Wurzel nach gleicher Aufteilungsregel erzeugt (vgl. Schritt 4 des Beispiels).

Es gibt eine weitere Möglichkeit, neue Elemente einzufügen, die sich darin von obiger Methode darin unterscheidet, zu welchem Zeitpunkt ein 4-Knoten aufgespalten wird (Split-Operation). Bei dieser Methode wird während des Traversierens des Baums jeder gefundene 4-Knoten aufgespalten, es wird also das mittlere Element nach oben gereicht. Die Split-Operation wird also im schlimmsten Fall gerade ein Mal durchgeführt, während die erstgenannte Methode im schlimmsten Fall log(n) Split-Operationen durchführen muss.

Löschen

Das Löschen eines beliebigen Elements kann immer auf das Löschen eines Elements in einem Blatt zurückgeführt werden. Dazu merkt man sich die Position des Elements innerhalb des Knotens. Ist die Position i, so wird im Unterbaum i des Knotens das Blatt gesucht, das sich am weitesten rechts befindet, dort vertauscht man das größte Element mit dem zu löschenden Element. Nun braucht nur noch das Element aus dem Blatt gelöscht zu werden, wobei drei Fälle unterschieden werden müssen:

  • Das Blatt besitzt mehr als ein Element. In diesem Fall kann das Element einfach entfernt werden.
  • Das Blatt enthält nur ein Element. In einem Nachbarknoten (Knoten mit gleichem Vorgänger) gibt es aber mindestens zwei Elemente. Es kann ein Element vom Nachbarknoten ausgeliehen werden. Der Schlüssel wird in den Vorgängerknoten verschoben, wobei das Vorgängerelement des zu löschenden Elements an dessen Position verschoben wird und dieses ersetzt.
  • Das Blatt hat nur ein Element. Auch die Nachbarknoten haben nur ein Element. Das Element wird entfernt und sein Vorgängerelement wird mit einem Nachbarelement zusammengelegt. Falls der Vorgängerknoten selbst nur ein einziges Element besitzt, wird dieselbe Operation auf höherer Ebene durchgeführt.

Varianten

2-3-4-Bäume werden beispielsweise durch Rot-Schwarz-Bäume implementiert.

Literatur

  • D. Maier, S. C. Salveter: Hysterical B-trees. In: Information Processing Letters 12, 1981, S. 199-202
  • S. Huddleston, K. Mehlhorn: A New Data Structure for Representing Sorted Lists. In Acta Informatica 17, 1982, S. 157-184

Weblinks


Wikimedia Foundation.

Игры ⚽ Нужно сделать НИР?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Baum (Familienname) — Baum ist ein Familienname. Herkunft und Bedeutung Der Familienname kann vom Baum als der Pflanze herrühren oder ein jüdischer Familienname in Anspielungen auf Abraham als Stammvater sein. Bekannte Namensträger Inhaltsverzeichnis A B C D E F G H I …   Deutsch Wikipedia

  • Baum — is a German surname meaning tree and may refer to:* Antoine Baum (Antoine Baumé), (1728 1804), French chemist * Bernie Baum, American song writer * Eric Baum, American computer scientist and artificial intelligence researcher * Edgar Schofield… …   Wikipedia

  • Baum (Begriffsklärung) — Baum (westgermanisch boum „Baum“, „Baumstamm“) bezeichnet: Baum in der Botanik die Wuchsform einer Pflanze Baum (Familienname), Namensträger siehe dort. Baum (Graphentheorie), in der Graphentheorie einen speziellen Graphen und in der Informatik… …   Deutsch Wikipedia

  • Baum-Wolfsmilch — (Euphorbia dendroides) Systematik Familie: Wolfsmilchgewächse (Euphorbiaceae) …   Deutsch Wikipedia

  • Baum-Hasel — Systematik Eurosiden I Ordnung: Buchenartige (Fagales) Familie …   Deutsch Wikipedia

  • Baum (Steuerelement) — Baum, der ein Verzeichnis mit Unterverzeichnissen darstellt (im Dateimanager Konqueror Ein Baum (engl: Tree view oder treeview) ist ein Steuerelement einer grafischen Benutzeroberfläche, das eine hierarchisch gegliederte Liste darstellt und… …   Deutsch Wikipedia

  • Baum'e — Bau m[ e] , a. Designating or conforming to either of the scales used by the French chemist Antoine Baum[ e] in the graduation of his hydrometers; of or relating to Baum[ e] s scales or hydrometers. There are two Baum[ e] hydrometers. One, which… …   The Collaborative International Dictionary of English

  • Baum-Strelitzie — (Strelitzia nicolai) Systematik Monokotyledonen …   Deutsch Wikipedia

  • BAUM, OSCAR — (1883–1941), Czechoslovak author who wrote in German. Baum was a member of the Prague circle of max brod and franz kafka . Losing his sight as a boy, Baum was trained at the Vienna Institute for the Blind as an organist and pianist and… …   Encyclopedia of Judaism

  • Baum der Sibyllen (Étampes) — Baum der Sibyllen in Étampes Als Baum der Sibyllen wird ein Fenster bezeichnet, das sich in der Kirche Notre Dame du Fort in Étampes, einer Stadt im Département Essonne in der Region Île de France, befindet. Das Bleiglasfenster entstand um… …   Deutsch Wikipedia

  • BAUM, HERBERT — (1912–1942), German Communist and anti Nazi fighter. Baum was a member of the German communist youth movement from 1932 and led a clandestine Jewish communist cell in Berlin from 1936. In 1937 he and his wife Marianne organized a political circle …   Encyclopedia of Judaism

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”