Ich hab hier mal wieder eine ganz interessante Aufgabe. WÄr ganz nett wenn wir hier ein paar Ideen zusammenbekommen könnten. Weil so ganz alleine krieg ich das wohl nicht hin...Danke schonmal für die Tipps.
Implementieren Sie eine Klasse BinaerBaum. In den Knoten sollen Zeichenketten verwaltet
werden können. Folgende Methoden sollen enthalten sein:
void fuegeEinSortiert(String neu):
Einfügen einer neuen Zeichenkette in den Baum nach dem Prinzip:
Falls Neu < Inhalt des Knotens dann in den linken Unterbaum, sonst in den
rechten Unterbaum.
void ausgabeLWR(): Ausgabe des Baumes in der Reihenfolge Links-Wurzel-Rechts:
das führt zu einer aufsteigend sortierten Folge
void ausgabeRWL(): Ausgabe des Baumes in der Reihenfolge Rechts-Wurzel-Links:
das führt zu einer absteigend sortierten Folge
int anzahl(): Ermittelt die Anzahl der Knoten im Baum (rekursiv)
Nutzen Sie für die Darstellung eines Baumes die Methode ausgabe() (siehe Datei
baumausgabe.txt) Wie sind die Methoden ausgabeLWR() bzw. ausgabeRWL() zu ändern,
damit im Ergebnis eine Folge sortierter Zeichenketten entsteht, die auch weiter verarbeitet
werden kann? (Hinweis: String-Array oder ArrayList)
a) Entwickeln Sie für die Klasse BinaerBaum eine Methode, die für den Baum die Tiefe
bestimmt.
b) Wenn Bäume sehr ungleich sind, versucht man diese mittels Rotationen auszugleichen.
Machen Sie sich mit den Rotationsoperationen auf Bäumen vertraut und implementieren Sie
die Methoden rotiereLinks() sowie rotiereRechts():
Implementieren Sie eine Klasse BinaerBaum. In den Knoten sollen Zeichenketten verwaltet
werden können. Folgende Methoden sollen enthalten sein:
void fuegeEinSortiert(String neu):
Einfügen einer neuen Zeichenkette in den Baum nach dem Prinzip:
Falls Neu < Inhalt des Knotens dann in den linken Unterbaum, sonst in den
rechten Unterbaum.
void ausgabeLWR(): Ausgabe des Baumes in der Reihenfolge Links-Wurzel-Rechts:
das führt zu einer aufsteigend sortierten Folge
void ausgabeRWL(): Ausgabe des Baumes in der Reihenfolge Rechts-Wurzel-Links:
das führt zu einer absteigend sortierten Folge
int anzahl(): Ermittelt die Anzahl der Knoten im Baum (rekursiv)
Nutzen Sie für die Darstellung eines Baumes die Methode ausgabe() (siehe Datei
baumausgabe.txt) Wie sind die Methoden ausgabeLWR() bzw. ausgabeRWL() zu ändern,
damit im Ergebnis eine Folge sortierter Zeichenketten entsteht, die auch weiter verarbeitet
werden kann? (Hinweis: String-Array oder ArrayList)
a) Entwickeln Sie für die Klasse BinaerBaum eine Methode, die für den Baum die Tiefe
bestimmt.
b) Wenn Bäume sehr ungleich sind, versucht man diese mittels Rotationen auszugleichen.
Machen Sie sich mit den Rotationsoperationen auf Bäumen vertraut und implementieren Sie
die Methoden rotiereLinks() sowie rotiereRechts():