![]() |
Binärbaum rekursiv auslesen
Hi
Ich möchte einen Binärbaum rekursiv auslesen. Doch leider scheint sich der PC daran zu stören, daß hier rekursiv gearbeitet wird. Der Quellcode sieht so aus:
Delphi-Quellcode:
Die Deklaration von PNode sieht so aus:
procedure ReadTree(node:PNode);
Begin if node<>nil then Begin Form1.ListBox1.Items.Add(node.name); // zu Kontrollzwecken in Listbox anzeigen if node.ChildNode1 <> nil then ReadTree(node.ChildNode1); if node.ChildNode2 <> nil then ReadTree(node.ChildNode2); end; End;
Delphi-Quellcode:
PNode = ^TNode;
TNode = record name:string; ChildNode1,ChildNode2:PNode; ParentNode:PNode; end; |
AW: Binärbaum rekursiv auslesen
Wie sieht "Stören" denn aus?
Geht der Bildschirm in Flammen auf? Gruß K-H |
AW: Binärbaum rekursiv auslesen
Das Programm schmiert ab. :)
|
AW: Binärbaum rekursiv auslesen
Wetten das "abschmieren mit "Endlosschleife" übersetzt wird?
Hast du es mal mit F7/F8 versucht? Gruß K-H |
AW: Binärbaum rekursiv auslesen
Das Programm ist nicht in einer Endlosschleife, sondern bricht mit einer Zugriffsverletzung bei Adresse xyz ab.
|
AW: Binärbaum rekursiv auslesen
Dann zeig doch mal die ZEile in der das Auftritt, das zeigt dir der Debugger ja an.
Und zeige mal, wie Du die Elemente in die Liste einfügst. |
AW: Binärbaum rekursiv auslesen
Das Programm bricht hier ab:
Delphi-Quellcode:
if node.ChildNode1 <> nil then ReadTree(node.ChildNode1);
Der komplette Code steht hier: ![]() (Die Funktion ReadTree(...) und deren Aufruf in TForm1.Button1Click(...) kommt dann halt noch hinzu.) |
AW: Binärbaum rekursiv auslesen
Ich habe es hinbekommen. Der Fehler war, daß ich bei der Initialisierung der Knoten vergessen hatte, den nicht existierenden Kindknoten noch ein nil zu verpassen.
|
AW: Binärbaum rekursiv auslesen
Die zwei weiteren If-Abfragen sind unnötig, denn beim nächsten Durchlauf wird sowieso darauf geprüft!
Wegmachen! |
AW: Binärbaum rekursiv auslesen
EDIT: Delete
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:00 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz