Binärbaum vervollständigen

0

0x00c

Gast
Hallo Forum =)

mein erster Post hier und daher erstmal einen lieben Gruß an alle. Wie der Thread-Titel schon verrät, habe ich ein Problem und suche eure Hilfe. Vorweg: Ich studiere Informatik in Dortmund und bin eigentlich ziemlich fit in Java.

Nun zum Problem: Es geht um einen Binär-Baum der vervollständigt werden soll. Ausgangssituation ist, dass der Baum bereits mit einigen Knoten befüllt ist. Die Knoten sind Strings. Zum Beispiel "T" – "C" – "K" – "B" usw... Jetzt soll der Baum vervollständigt werden, die Binär-Baum Eigenschaft aber erhalten bleiben. Das bedeutet, dass jedes Niveau des Baumes die maximale Anzahl an Knoten haben soll.

Ich bin das Problem rekursiv angegangen, dass erschien mir einfacher. Ich finde auch die Stellen, die mit neuen Blättern befüllt werden sollen.

Konkret ist das Problem: Ich weiß nicht womit ich die Knoten befüllen soll, da die Binär-Baum Eigenschaft erfüllt bleiben soll. Wären die Knoten Zahlen, wäre es relativ offensichtlich. Da die Knoten aber Strings enthalten, tue ich mich irgendwie schwer ???:L Kann sein, dass ich da ein Brett vor dem Kopf habe.

Deswegen frage ich nach eurer Hilfe: Wie bestimme ich konkret,mit welchem Wert das neue Blatt erzeugt werden soll, sodass die Binär-Baum Eigenschaft erhalten bleibt?

Einige Sachen sind im Code leider vorgegeben. Es handelt sich um eine Übungsaufgabe aus der Uni.

Der Code der Klasse dazu sieht so aus:
[Java] import java.util.*; public class TreeMap { private Node root; // - Pastebin.com

Und so meine Main bisher:
[Java] public class Test { public static void main(String[] args) { // Bau - Pastebin.com

(mal auf Pastebin gepostet, ich hoffe das ist okay. Die klasse ist relativ lang.)

Vielen Dank im Voraus schon mal für alle Antworten!
 
Zuletzt bearbeitet von einem Moderator:

Ähnliche Java Themen

Neue Themen


Oben