hi,
hab ein problem mit der rotate methode. Hänge schon seit Stunden bei der fehlersuche, komme aber einfach nicht dahinter ... -_-
Ausgabe:PHP Code:public AvlNode rotateRight(AvlNode n) {
//Aktuellen Root ausgeben
System.out.println("Aktueller Root: " + root);
System.out.println("Aktueller root.parent: " + root.parent);
AvlNode v = n.left;
n.left = v.right;
v.right = n;
if (root.key == n.key) {
//Neue Wurzel setzen
root = v;
//Wurzel Parent auf null setzen
root.parent = null;
}
//Neue Wurzel
System.out.println("Neuer Root: " + root);
System.out.println("Neuer root.parent: " + root.parent);
//TODO: Höhen neu berechnen
return v;
}
in0001: DBG Insert: 9
in0001: DBG Insert: 8
in0001: DBG Insert: 7
try rotating ...
Aktueller Root: 9
Aktueller root.parent: null
Neuer Root: 8
Neuer root.parent: null
in0001: ERR Elternknoten der Wurzel ist nicht richtig gesetzt: 8
------------------
Setze ich den root.parent nicht auf null, gibt er als root.parent '9' aus, was ja auch nicht erlaubt (und falsch) ist. Vorschläge für die Sackgasse?
lg



?
Reply With Quote

Bookmarks