Hi,
komme bei diesem Problem nicht weiter.
Es laufen alle Test bis auf den random Test.
Die Fehlermeldung ist, dass ich anstatt 4000 nur noch 3 Elemente habe. (Im random test werden ja erst 5000 zugefügt und dann 1000 wieder entfernt)
Habe mal geschaut, der Baum mit den 5000 Knoten wird (keine Ahnung ob wirklich richtig, aber size ist dann 5000) aufgebaut.
dann habe ich nach relativ wenigen Schritten nur noch 3 Knoten und danach passiert nix mehr.
Ich gehe folgendermaßen vor:
Am anfang meiner remove mehtode habe ich die Zuweisung
Dann such ich entlang dem Baum mit einer Schleife. Also:
Code: Alles auswählen
if (helpNode == gesuchter Knoten) break;
else je nachdem ob gesuchter größer oder kleiner helpNode = helpNode.left oder helpNode.right
Wenn der Wert gefunden wurde schaue ich mir den parent von helpNode an und 'lösche' den gesuchten Knoten, indem ich entweder den einzigen Sohn, den In-Order sohn oder null an die entsprechende Seite von parent hänge.
dann rebalanciere ich entlang dem WEg zur Wurzel und gebe dann node zurück.
Wenn der Wert nicht gefunden wurde gebe ich node zurück ( node müsste ja noch auf die ursprüngliche Wurzel zeigen ??)
Wahrscheinlich wird der Fehler da liege, dass ich einen Denkfehler habe, auf welchem Objekt ich arbeite, aber welchen?
Gruß