<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=2-3-4-Baum</id>
	<title>2-3-4-Baum - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=2-3-4-Baum"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=2-3-4-Baum&amp;action=history"/>
	<updated>2026-06-11T05:04:54Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=2-3-4-Baum&amp;diff=80479&amp;oldid=prev</id>
		<title>imported&gt;일성김: ??? Die letzte Textänderung von 147.142.150.164 wurde verworfen und die Version 209522251 von Aka wiederhergestellt.</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=2-3-4-Baum&amp;diff=80479&amp;oldid=prev"/>
		<updated>2023-06-23T14:53:59Z</updated>

		<summary type="html">&lt;p&gt;??? Die letzte Textänderung von &lt;a href=&quot;/index.php/Spezial:Beitr%C3%A4ge/147.142.150.164&quot; title=&quot;Spezial:Beiträge/147.142.150.164&quot;&gt;147.142.150.164&lt;/a&gt; wurde verworfen und die Version &lt;a href=&quot;/index.php/Spezial:Permanenter_Link/209522251&quot; title=&quot;Spezial:Permanenter Link/209522251&quot;&gt;209522251&lt;/a&gt; von Aka wiederhergestellt.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Datei:2-3-4 tree example.png|mini|2-3-4 Baum]]&lt;br /&gt;
&lt;br /&gt;
Ein &amp;#039;&amp;#039;&amp;#039;2-3-4-Baum&amp;#039;&amp;#039;&amp;#039; (auch &amp;#039;&amp;#039;&amp;#039;(2,4)-Baum&amp;#039;&amp;#039;&amp;#039;) ist in der [[Informatik]] eine [[Datenstruktur]], genauer ein [[B-Baum]] des minimalen Verzweigungsgrades &amp;#039;&amp;#039;2&amp;#039;&amp;#039;, das heißt, er ist ein [[Baum (Graphentheorie)|Baum]], in dem jeder &amp;#039;&amp;#039;[[Knoten (Graphentheorie)|Knoten]]&amp;#039;&amp;#039; zwei, drei oder maximal vier &amp;#039;&amp;#039;Kinder&amp;#039;&amp;#039; 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 [[Balancierter Baum|balancierten]] [[Suchbaum]] dar.&lt;br /&gt;
&lt;br /&gt;
[[Datei:234Baum.PNG|mini|Beispiel eines 2-3-4-Baums]]&lt;br /&gt;
&lt;br /&gt;
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 [[Asymptotische Laufzeit|Laufzeit]] von [[Landau-Symbole|O(log n)]] möglich. Durch geschicktes Einfügen wird der 2-3-4-Baum stets balanciert gehalten.&lt;br /&gt;
&lt;br /&gt;
== Suchen ==&lt;br /&gt;
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 &amp;#039;&amp;#039;Wurzelknotens&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
# Vergleiche, ob der gesuchte Schlüssel gleich dem aktiven Element ist.&lt;br /&gt;
#* Wenn ja, Suche beendet.&lt;br /&gt;
#* Wenn nein, gehe zu 2.&lt;br /&gt;
# Vergleiche, ob der gesuchte Schlüssel kleiner ist als das aktive Element im &amp;#039;&amp;#039;aktiven Knoten&amp;#039;&amp;#039;.&lt;br /&gt;
#* Wenn ja, verzweige zum Kindknoten, der links vom gerade überprüften Element angehängt ist, setze dessen kleinstes Element als aktives Element und gehe zu 1. zurück.&lt;br /&gt;
#* 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.&lt;br /&gt;
&lt;br /&gt;
== Einfügen ==&lt;br /&gt;
* Ein Knoten wird mit Elementen aufgefüllt, bis er drei Elemente enthält (vgl. B im Beispiel).&lt;br /&gt;
* Wenn ein viertes Element aufgenommen werden soll, wird der Knoten gespalten (engl. &amp;#039;&amp;#039;split&amp;#039;&amp;#039;) 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 &amp;#039;&amp;#039;[[Elterknoten]]&amp;#039;&amp;#039; aufgenommen wird (vgl. Schritt 2 im Beispiel).&lt;br /&gt;
* Ist der Elterknoten 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).&lt;br /&gt;
&lt;br /&gt;
Es gibt eine weitere Möglichkeit, neue Elemente einzufügen, die sich von obiger Methode darin unterscheidet, zu welchem Zeitpunkt ein &amp;#039;&amp;#039;4-Knoten&amp;#039;&amp;#039; aufgespalten wird.&lt;br /&gt;
Bei dieser Methode wird während des &amp;#039;&amp;#039;Traversierens&amp;#039;&amp;#039; 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 einmal durchgeführt, während die erstgenannte Methode im schlimmsten Fall log(n) Split-Operationen durchführen muss.&lt;br /&gt;
&lt;br /&gt;
== Löschen ==&lt;br /&gt;
Das Löschen eines beliebigen Elements kann immer auf das Löschen eines Elements in einem &amp;#039;&amp;#039;Blatt&amp;#039;&amp;#039; zurückgeführt werden. Dazu merkt man sich die Position des Elements innerhalb des Knotens. Ist die Position &amp;#039;&amp;#039;i&amp;#039;&amp;#039;, so wird im &amp;#039;&amp;#039;Unterbaum i&amp;#039;&amp;#039; des Knotens das Blatt gesucht, das sich am weitesten rechts befindet, dort vertauscht man das größte Element mit dem zu löschenden Element.&lt;br /&gt;
Nun braucht nur noch das Element aus dem Blatt gelöscht zu werden, wobei drei Fälle unterschieden werden müssen:&lt;br /&gt;
* Das Blatt besitzt mehr als ein Element. In diesem Fall kann das Element einfach entfernt werden.&lt;br /&gt;
* Das Blatt enthält nur ein Element. In einem &amp;#039;&amp;#039;Geschwisterknoten&amp;#039;&amp;#039; (Knoten mit gleichem &amp;#039;&amp;#039;Elter&amp;#039;&amp;#039;) gibt es aber mindestens zwei Elemente. Es kann ein Element beim Geschwisterknoten &amp;#039;&amp;#039;ausgeliehen&amp;#039;&amp;#039; (&amp;#039;&amp;#039;gestohlen&amp;#039;&amp;#039; in [[#Mehlhorn1|Mehlhorn 1998]]) werden.&lt;br /&gt;
* Das Blatt hat nur ein Element. Es sind wenigstens drei Geschwister beim gleichen Elter (zwei Elemente). Alle haben nur ein Element. Zwei Geschwister werden verschmolzen (engl. &amp;#039;&amp;#039;fuse&amp;#039;&amp;#039;).&lt;br /&gt;
* Das Blatt hat nur ein Element. Es gibt nur einen Geschwisterknoten, der auch nur ein Element hat. Die Operation wird rekursiv auf höherer Ebene fortgesetzt.&lt;br /&gt;
&lt;br /&gt;
== Varianten ==&lt;br /&gt;
2-3-4-Bäume werden beispielsweise durch [[Rot-Schwarz-Baum|Rot-Schwarz-Bäume]] implementiert.&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
* D. Maier, S. C. Salveter: &amp;#039;&amp;#039;Hysterical B-trees&amp;#039;&amp;#039;. In: &amp;#039;&amp;#039;Information Processing Letters 12&amp;#039;&amp;#039;, 1981, S. 199–202&lt;br /&gt;
* S. Huddleston, K. Mehlhorn: &amp;#039;&amp;#039;A New Data Structure for Representing Sorted Lists&amp;#039;&amp;#039;. In &amp;#039;&amp;#039;Acta Informatica 17&amp;#039;&amp;#039;, 1982, S. 157–184&lt;br /&gt;
* {{Anker|Mehlhorn1}}Kurt Mehlhorn: &amp;#039;&amp;#039;Datenstrukturen und effiziente Algorithmen.&amp;#039;&amp;#039; Teubner Stuttgart 1988, ISBN 3-519-12255-3.&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [https://www.cs.unm.edu/~rlpm/499/ttft.html Arbeitsweise eines 2-3-4-Baumes] (englisch, [[Java-Applet]])&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Suchbaum]]&lt;/div&gt;</summary>
		<author><name>imported&gt;일성김</name></author>
	</entry>
</feed>