Thema: Delphi Binärer Baum mit Klasse

Einzelnen Beitrag anzeigen

ford42

Registriert seit: 2. Okt 2015
60 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#12

AW: Binärer Baum mit Klasse

  Alt 17. Dez 2015, 12:53
Argh, ich hab einen Denkfehler in einer Methode (entweder TNodeTest.LoescheUndFuegeEin oder/und TNodeTest.EinzelnerKnotenLoeschen).
Ich habe nun beide Methoden nochmal neu geschrieben (Algo aufgestellt und umgesetzt) und es geht immer noch nicht richtig.

Was nicht geht:
Es sieht so aus, dass manchmal nicht nur ein Knoten sondern alle gelöscht weden bzw manche einfach abgehangen werden. Also z.b. PStandNode.FLinks := nil; gemacht wird. Denn der Destruktor wird nicht immer angeschmissen, aber ich kann dann nicht mehr zu allen nodes navigieren und sichtbar sind sie auch nicht mehr (im TreeView).

Sry, ich weiß, dass ich nicht gut erklären kann. Deshalb hänge ich mein Projekt wieder an. Gebt ein paar zufällige Zahlen ein, löscht ein paar Mal einzelne Knoten, die ein oder zwei Kinder haben und mit etwas Glück seht ihr, was ich meine.


Vielen Dank
LG ford42

EDIT: Hab bisher 2 Fehler gefunden:

1.:
Code:
if Assigned(PWurzelBufferNode.FLinks) and Assigned(PWurzelBufferNode.FRechts) then
anstatt
Code:
if Assigned(PWurzelBufferNode.FLinks) and Assigned(PWurzelNode.FRechts) then

2.:
Code:
until (BufferStack.Count = 0) and ((PBufferNode.FRechts = nil) and (PBufferNode.FLinks = nil));
anstatt
Code:
until (BufferStack.Count = 0) or ((PBufferNode.FRechts = nil) or (PBufferNode.FLinks = nil));
Angehängte Dateien
Dateityp: zip BaumKlasseGetrennt.zip (83,4 KB, 2x aufgerufen)

Geändert von ford42 (17. Dez 2015 um 14:41 Uhr)
  Mit Zitat antworten Zitat