Rot Scharz Baum von Binärbaum erben

Laren

Bekanntes Mitglied
Hi,

Ich soll anhand eines Binärbaumes einen Rot-Schwarz-Baum schreiben.
Jetzt bin ich mir nur nicht so sicher, wie das funktionieren soll.
Ich habe schon eine Klasse Rot-Schwarz-Baum geschrieben, die von einer Klasse Binärtree erbt.
Der Prof hat sich nicht so klar ausgedrückt, wie man die Aufgabe realiesieren soll, er meinte nur, wir haben eine Klasse Bineartree, die wir benutzen sollen.
Der Binärbaum hat einen Comperator, der übergeben Strings richtig im Baum einordnet, es würde aber theoretisch auch mit keys gehen.
Ist dies überhaupt mit Vererbung möglich?

Ps: Es sollen wieder Strings richtig eingeordnet werden

Viele Grüße
 
S

SlaterB

Gast
> Ich habe schon eine Klasse Rot-Schwarz-Baum geschrieben, die von einer Klasse Binärtree erbt.
du bist also fertig? perfekt

> Der Binärbaum hat einen Comperator, [..] Ist dies überhaupt mit Vererbung möglich?
bei Suche dürfte sich nicht viel ändern, denke ich (nach bisher nur 5 Min. Nachlesen zu Rot-Schwarz-Baum)

wo immer aber dein Code zur Entscheidung über linken oder rechten Nachfolger bei Einfügen usw. steht, muss diese ja anders sein,
ob in einem Comparator oder sonstwo, Vererbung kann da eine Rolle spielen, ja,
ist jetzt aber extrem allgemein gesprochen, hast du irgendeine konkrete Frage?
 

Oli

Top Contributor
Nun der Unterschied zwischen einem Binär und einem RS - Baum ist ja, dass der RS-Baum sich ausgleicht. Im Prinzip musst du nur folgende Regeln implementieren:

Jeder Knoten hat einen Wert

Der Wert eines Vaterknotens ist grösser als der Wert seines linken und kleiner als der Wert seines rechten Kinderknotens.

Jeder Knoten ist entweder rot oder schwarz.

Die Wurzel ist immer schwarz.

Jeder Pfad von der Wurzel zu einem Endnoten enthält dieselbe Anzahl von schwarzen Knoten. Dadurch wird garantiert, dass der Baum in Bezug auf die schwarzen Knoten vollständig ausgeglichen ist.

Jeder rote Knoten, welcher nicht ein Endknoten ist, hat nur schwarze Kinderknoten, d.h. es folgen niemals zwei rote Knoten aufeinander. So ist sichergestellt, dass in einem Pfad mit n schwarzen Knoten niemals mehr als n-1 rote Knoten enthalten sind, wodurch sich die Tiefe (Länge) zweier Unterbäume um höchstens n-1 Knoten unterscheidet (-> annähernd ausgeglichen).

Wenn ich die Aufgabenstellung richtig verstehe, dann sollst du die Funktionen insert, update, delete des Binärbaumes nach oben stehenden Regeln überschreiben.

Oder hab ich die Frage falsch verstanden?
 

Laren

Bekanntes Mitglied
mein Problem ist einfach, wenn ich von dem Binärbaum erbe, dann bin ich ja beim Insert (wir sollen nur Insert umsetzen) an den Binärbaum gebunden, da dieser ja beim insert einfach nur prüft, wo der knoten hin soll(rechts oder links). Der Binärbaum hat ja ein festes Konzept, dieses muss ich doch dann durch Methoden des Rot.Schwarz Baumes erweitern. Also muss ich doch die Klasse Binärbaum verändern.

nehmen wir mal an, ich will vom Binärbaum die Mehtode insert erben:

Java:
public void insert(Node node)
{
super.insert(node);
//alles was danach kommt ist eh egal, weil der Knoten schon im Binärbaum ist
// viel. noch die Methode changeColor
// aber rotate ist ja unmöglich, oder?
}

Viele Grüße
 

Michael...

Top Contributor
Java:
public class RotSchwarzBaum extends BinaerBaum {
    public void insert(Node node) {
        ...
        // Hier muss die RotSchwarzBaum spezifische Implementierung der insert Methode definiert werden
    }
}
 
S

SlaterB

Gast
tja, also super.insert(node); besser nicht aufrufen sondern neu implementieren, oder?
das ist noch innerhalb der Regeln und des Sinns der Vererbung
 

Laren

Bekanntes Mitglied
Java:
public class RotSchwarzBaum extends BinaerBaum {
    public void insert(Node node) {
        ...
        // Hier muss die RotSchwarzBaum spezifische Implementierung der insert Methode definiert werden
    }
}

Aber ist es nicht so, dass man bei einfügen prüfen muss ob alles an der rechten Stelle steht. Das wäre hier ja nicht mehr gewährleistet.
 

Crian

Top Contributor
Du musst ja
Code:
super.insert()
nicht aufrufen.

Edit: Mmmh man sollte Threads vor dem Antworten nicht so lange offen haben.
 

Michael...

Top Contributor
Aber ist es nicht so, dass man bei einfügen prüfen muss ob alles an der rechten Stelle steht. Das wäre hier ja nicht mehr gewährleistet.
insert == einfügen. Wo sonst sollte die Prüfung stattfinden als in der Methode insert? Hier nimmst Du das Node Objekt entgegen, prüfst ob es gültig ist und legst fest, wie es in die Struktur eingefügt werden soll.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
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
U 2-3-4 Baum Top-Down Java Basics - Anfänger-Themen 4
U 2-3-4 Baum Top-Down Java Basics - Anfänger-Themen 0
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
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
Y Wie greift man auf die Knoten in einem Binärbaum zu? Java Basics - Anfänger-Themen 5
T Binärbaum-Suche Implementation Java Basics - Anfänger-Themen 6
A Binärbaum rekursiv durchsuchen und Referenz zurückgeben Java Basics - Anfänger-Themen 4
D Werte aus einem BinärBaum in einem Array speichern Java Basics - Anfänger-Themen 1
D Binärbaum Blätter finden und Ausgeben Java Basics - Anfänger-Themen 22
O BinärBaum einfügen Java Basics - Anfänger-Themen 13
E Erste Schritte Testklasse Binärbaum Java Basics - Anfänger-Themen 10
void19 Methoden Binärbaum Inorder Traversierung in Array speichern Java Basics - Anfänger-Themen 1
A Größten Eintrag aus Binärbaum löschen Java Basics - Anfänger-Themen 4
L Ganzen BinärBaum ausgeben? Java Basics - Anfänger-Themen 3
L Binärbaum (Stammbaum) Java Basics - Anfänger-Themen 8
S Binärbaum in PreOrder in ArrayList speichern Java Basics - Anfänger-Themen 0
J Methoden Binärbaum, Traversierung in Array speichern Java Basics - Anfänger-Themen 18
K BinärBaum Java Basics - Anfänger-Themen 4
J Max. Anzahl von Knoten im Binärbaum Java Basics - Anfänger-Themen 3
M Werte der Knoten in Binärbaum addieren (iterativ) Java Basics - Anfänger-Themen 6
C Binärbaum mit grafischer Ausgabe Java Basics - Anfänger-Themen 0

Ähnliche Java Themen

Neue Themen


Oben