AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Binärer Baum mit Klasse

Ein Thema von ford42 · begonnen am 8. Dez 2015 · letzter Beitrag vom 17. Dez 2015
Antwort Antwort
Seite 2 von 2     12
ford42

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

AW: Binärer Baum mit Klasse

  Alt 16. Dez 2015, 08:23
Den Bug kann ich aber trotzdem nicht fixen, weil ich nicht rausbekomme wie er entsteht.

Wenn ich wild auf der Tastatur irgendwelche Werte eingebe, rechts links, verschiedene Lösch-Funktionen ausführe und dann wieder wohin navigiere kommt z. B. der Fehler, den ich unten angehängt habe.

Aber wie bekomm ich jetzt raus wodurch er entsteht?



Vielen Dank
LG ford42

EDIT: Nun auch gescheit formatiert (aber die Klammern find ich so eig schöner, deshalb hab ich sie so gelassen)
Und eig müsste es jetzt alles bugfrei laufen!
Angehängte Dateien
Dateityp: zip BaumKlasseGetrennt.zip (82,6 KB, 1x aufgerufen)

Geändert von ford42 (16. Dez 2015 um 14:45 Uhr)
  Mit Zitat antworten Zitat
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, 13: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 15:41 Uhr)
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +2. Es ist jetzt 11:00 Uhr.
Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf