Einzelnen Beitrag anzeigen

Fehlersucher

Registriert seit: 10. Nov 2012
32 Beiträge
 
#1

Binärer Suchbaum Knoten entfernen

  Alt 19. Dez 2012, 18:58
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ß
  Mit Zitat antworten Zitat