Hallo,
ich soll einen
Teilalgorithmus schreiben, durch welchen ein Knoten aus einem binären Suchbaum entfernt wird.
Der zu entfernende Knoten hat lediglich ein Kind (linke Seite).
Der folgende Code ist Sprachcode um meinen Gedankengang zu veranschaulichen.
Delphi-Quellcode:
var hsuchbaumZWISCHEN, hsuchbaum : TBinärsuchbaum;
... // hier würden noch andere Teile der Prozedur stehen
hsuchbaumZWISCHEN := hsuchbaum.giblinkenBaum;
hsuchbaum.zerstoeren;
hsuchbaum.einfuegen(hsuchbaumZWISCHEN);
... // hier würden noch andere Teile der Prozedur stehen
Tja, nun ist der Code aber falsch, da hsuchbaum.zerstören unglücklicherweise den ganzen Baum zerstört.
Mein Teilalgorithmus ist ein Dreizeiler, aber damit es richtig funktioniert müsste es ein Fünfzeiler sein.
Ich habe bruchstückweise noch irgendwie folgendes mitbekommen:
- Es ist ok, wenn hsuchbaum (im Teilalgorithmus) ganz zerstört wird
- Man kommt mit der Zwischenvariable hsuchbaumZWISCHEN aus und braucht keine weitere Variable
- Irgendwie soll man glaube ich den hsuchbaumZWISCHEN verwenden und nach diesem ein Inhaltsobjekt einfügen, oder so
Ich habe gar keine Ahnung, wie man das in einem Fünfzeiler richtig machen soll.
Kann mir jemand (in Sprachcode) helfen?
Gruß