2-3-4 Baum Top-Down

undercover

Aktives Mitglied
Hi Leute,
hab mal eine Frage.
Ich tue mich relativ schwer mit dem 2-3-4 Baum nach der Top Down Methode. Einen Binären Baum zu erstellen fällt mir nicht schwer, allerdings der 2-3-4 Baum umso mehr.
Wenn ich von einem leeren Baum ausgehe und als Input die Zahlen in folgender Reihenfolge einlese 4,3,5,1,2,7,9,11,8 wie würde der dazugehörige Baum aussehn?
Die meisten Beispiele Zeigen das einfügen in einen gefüllten Baum, nicht im leeren.

Gruß
 

Kababär

Top Contributor
Es spielt keine wesentliche Rolle ob man einen leeren Baum oder einen gefüllten Baum vor sich hat, da die Prozedur die gleiche bleibt.

Es gibt viele verschiedene Varianten für einen 2-3-4 Baum und die Fragen, die man sich stellen muss sind:
1. Wann werden Knoten aufgeteilt? Bei 3 oder 4?
2. Wie teile ich Knoten auf?

Ich teile einen Knoten a b c immer auf, sobald er drei Elemente enthält.
Dabei setze ich b als Elternknoten, und setze a als linken und c als rechten Kindknoten von b.
Wichtig hierbei Ist, dass die Werte stets sortiert bleiben.
Ein Anfang wäre
1. 4
2. 3 4
3. 3 4 5 //teile
4. 4
/ \
3 5

Nachteil: die 4er-Grenze wird nicht benutzt.
Aber ein 2-3-4 Baum muss nicht die 4er-Grebze verwenden.
Alternativ zur obigen Vorgehensweise kannst du die Knoten ganz normal auffüllen, bis sie 4 Elemente haben. Danach einfach die zwei größten Elemente nehmen und sie in einen neuen Nachbarknoten einfügen.
 

JStein52

Top Contributor
Oder hättest du das Ganze lieber Schrittweise:

Enter value to insert: 4
level=0 child=0 /4.0/
Enter value to insert: 5
level=0 child=0 /4.0/5.0/
Enter value to insert: 3
level=0 child=0 /3.0/4.0/5.0/
Enter value to insert: 1
level=0 child=0 /4.0/
level=1 child=0 /1.0/3.0/
level=1 child=1 /5.0/
Enter value to insert: 2
level=0 child=0 /4.0/
level=1 child=0 /1.0/2.0/3.0/
level=1 child=1 /5.0/
Enter value to insert: 7
level=0 child=0 /4.0/
level=1 child=0 /1.0/2.0/3.0/
level=1 child=1 /5.0/7.0/
Enter value to insert: 9
level=0 child=0 /4.0/
level=1 child=0 /1.0/2.0/3.0/
level=1 child=1 /5.0/7.0/9.0/
Enter value to insert: 11
level=0 child=0 /4.0/7.0/
level=1 child=0 /1.0/2.0/3.0/
level=1 child=1 /5.0/
level=1 child=2 /9.0/11.0/
Enter value to insert: 8
level=0 child=0 /4.0/7.0/
level=1 child=0 /1.0/2.0/3.0/
level=1 child=1 /5.0/
level=1 child=2 /8.0/9.0/11.0/

Edit: Das Einfügen geschieht nach folgenden Regeln (von Wikipedia):
  • 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 (engl. split) 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 Elterknoten aufgenommen wird (vgl. Schritt 2 im Beispiel).
  • 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
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
U 2-3-4 Baum Top-Down Java Basics - Anfänger-Themen 0
D spezifische Knoten in einem Baum zählen Java Basics - Anfänger-Themen 9
HelpInneed Baum ausgeben (aber mal anders) Java Basics - Anfänger-Themen 3
G AVL-Baum Java Basics - Anfänger-Themen 1
G Rot-Schwarz-Baum Java Basics - Anfänger-Themen 8
L Baum aus Integer Liste erstellen Java Basics - Anfänger-Themen 0
CptK Interface Baum visualisieren Java Basics - Anfänger-Themen 37
CptK Best Practice Merge-Sort als Baum darstellen Java Basics - Anfänger-Themen 3
E Baum pfadweise durchlaufen Java Basics - Anfänger-Themen 11
O Naives links rechts einfügen in ADT Baum Java Basics - Anfänger-Themen 8
L Traversierungsverfahren Baum: LevelOrder Java Basics - Anfänger-Themen 17
L Rekursion im Baum Java Basics - Anfänger-Themen 9
L Baum Knoten zählen Java Basics - Anfänger-Themen 6
L B+Baum innere Knoten erstellen Java Basics - Anfänger-Themen 3
D B-Baum einfügen und löschen Java Basics - Anfänger-Themen 2
F Aufgabe Rekursion Binärer Baum Java Basics - Anfänger-Themen 15
D Werte AVL-Baum löschen Java Basics - Anfänger-Themen 2
M Binären Baum Kinder setzen Java Basics - Anfänger-Themen 12
J Überprüfen, ob eine 2D Matrix ein Baum ist Java Basics - Anfänger-Themen 5
R Baum erzeugen Java Basics - Anfänger-Themen 61
B Baum Traversierung Postorder Java Basics - Anfänger-Themen 6
B OOP Über einen AVL-Baum iterieren (NullPointer) Java Basics - Anfänger-Themen 5
A Voller Baum Java Basics - Anfänger-Themen 7
S n-ärer Baum Java Basics - Anfänger-Themen 6
O Unterschied Baum <-> Automat Java Basics - Anfänger-Themen 2
K Tiefen- und Breitensuche beim Baum durch Stack und Warteschlange Java Basics - Anfänger-Themen 1
C kompletter baum Java Basics - Anfänger-Themen 2
M Collections Iterator und generischer Baum Java Basics - Anfänger-Themen 0
M Baum Code kurze frage ... Java Basics - Anfänger-Themen 6
D Ein Objekt in einem Baum finden und ausgeben. Java Basics - Anfänger-Themen 4
K Rot-Schwarz-Baum min und max-Tiefe Java Basics - Anfänger-Themen 1
A min() Methode Baum Java Basics - Anfänger-Themen 1
J Baum rekursiv durchlaufen Java Basics - Anfänger-Themen 2
J Baum Knoten löschen Java Basics - Anfänger-Themen 10
T Baum mit Turtle zeichnen Java Basics - Anfänger-Themen 2
Screen 2,4 Baum Frage Java Basics - Anfänger-Themen 6
T Rot-schwarz Baum Problem Java Basics - Anfänger-Themen 3
A Rekursion in Baum und ArrayList als Rückgabe Java Basics - Anfänger-Themen 2
P Pythagoras Baum - Berechnung der Punkte Java Basics - Anfänger-Themen 9
C 2-3 Baum Java Basics - Anfänger-Themen 6
H Baum Java Basics - Anfänger-Themen 4
L Rot Scharz Baum von Binärbaum erben Java Basics - Anfänger-Themen 9
B Baum > Baum-Swing Java Basics - Anfänger-Themen 4
L eigenen Baum schreiben Java Basics - Anfänger-Themen 5
Luk10 Anzahl der Knoten in einem Baum ausgeben! Java Basics - Anfänger-Themen 6
T Array in einen Baum zu überführen Java Basics - Anfänger-Themen 3
S Das reinschreiben einer Klasse in den Baum Java Basics - Anfänger-Themen 6
H B-Baum: Knoten Position als Parameter oder als Variable im Objekt? Java Basics - Anfänger-Themen 4
A Baum mit geometricfigur Werte Java Basics - Anfänger-Themen 6
D Datentypen Einfügen im RotSchwarz Baum Java Basics - Anfänger-Themen 2
F FileSystem in Baum darstellen/wurzel festlegen Java Basics - Anfänger-Themen 3
G List als Rückgabewert einer rekursiven Methode (Baum) Java Basics - Anfänger-Themen 3
I Baum graphisch darstellen Java Basics - Anfänger-Themen 2
P Binärer Baum mit Composite-Entwurfsmuster Java Basics - Anfänger-Themen 2
L Baum Swing AVL Java Basics - Anfänger-Themen 4
Binary.Coder 2-3-4 Baum vs. (2,4) Baum Java Basics - Anfänger-Themen 2
ModellbahnerTT Ab-Baum Applet Java Basics - Anfänger-Themen 3
P Baum-Menü in Java Java Basics - Anfänger-Themen 5
H Baum Java Basics - Anfänger-Themen 11
G AVL Baum Java Basics - Anfänger-Themen 20
J Baum spiegeln Java Basics - Anfänger-Themen 7
N 2-3 Baum, Einfügen Java Basics - Anfänger-Themen 5
G Rekursion mit Return - Baum durchlaufen Java Basics - Anfänger-Themen 4
G Baum Datenstruktur Java Basics - Anfänger-Themen 2
V Baum mit log n Aufwand für Einfügen und Löschen und. Java Basics - Anfänger-Themen 5
H Tiefensuche im binären Baum Java Basics - Anfänger-Themen 2
P Problem mit Darstellung im Baum Java Basics - Anfänger-Themen 4
G Binärer Baum Java Basics - Anfänger-Themen 3
M Binärer Baum Tiefe Java Basics - Anfänger-Themen 14
G universeller baum Java Basics - Anfänger-Themen 13
G Baum testen Java Basics - Anfänger-Themen 20
B Array To Baum Java Basics - Anfänger-Themen 2
B Baum to Array Java Basics - Anfänger-Themen 17
H Löschen in einem binären Baum führt zu einem StackOverflow Java Basics - Anfänger-Themen 2
L Binären Baum speichern Java Basics - Anfänger-Themen 6
R Pythagoras-Baum Java Basics - Anfänger-Themen 5
W Baum durchlaufen Java Basics - Anfänger-Themen 3
T binärer Baum Java Basics - Anfänger-Themen 3
G eine Knoten aus einem Baum löschen. [SOLVED] Java Basics - Anfänger-Themen 7
P allg. Baum aus Liste Java Basics - Anfänger-Themen 2
J String in binären Baum umwandeln Java Basics - Anfänger-Themen 7
R binärer Baum Java Basics - Anfänger-Themen 2
F Abstrakte Klasse Baum Java Basics - Anfänger-Themen 6
temi (Down-)Casting Problem Java Basics - Anfänger-Themen 5
M FTP Down-/Upload Java Basics - Anfänger-Themen 3
K Drop-down Menü (swing) Java Basics - Anfänger-Themen 4
S Java und HTML- Drop Down- Mehrfachauswahl Java Basics - Anfänger-Themen 3
Unsympath OOP Up- und Down-Casting Java Basics - Anfänger-Themen 3
E Adobe Designer Drop Down Feld & If Abfrage Java Basics - Anfänger-Themen 4
M statt drop down menü - buttons Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben