AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Binärbaum rekursiv auslesen

Ein Thema von Gargamel · begonnen am 26. Jan 2012 · letzter Beitrag vom 31. Jan 2012
Antwort Antwort
Seite 1 von 2  1 2      
Gargamel

Registriert seit: 19. Mär 2007
171 Beiträge
 
#1

Binärbaum rekursiv auslesen

  Alt 26. Jan 2012, 13:12
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:
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;
Die Deklaration von PNode sieht so aus:

Delphi-Quellcode:
PNode = ^TNode;
TNode = record
   name:string;
   ChildNode1,ChildNode2:PNode;
   ParentNode:PNode;
end;
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#2

AW: Binärbaum rekursiv auslesen

  Alt 26. Jan 2012, 13:18
Wie sieht "Stören" denn aus?
Geht der Bildschirm in Flammen auf?

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Gargamel

Registriert seit: 19. Mär 2007
171 Beiträge
 
#3

AW: Binärbaum rekursiv auslesen

  Alt 26. Jan 2012, 13:20
Das Programm schmiert ab.
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#4

AW: Binärbaum rekursiv auslesen

  Alt 26. Jan 2012, 13:33
Wetten das "abschmieren mit "Endlosschleife" übersetzt wird?

Hast du es mal mit F7/F8 versucht?

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Gargamel

Registriert seit: 19. Mär 2007
171 Beiträge
 
#5

AW: Binärbaum rekursiv auslesen

  Alt 26. Jan 2012, 13:37
Das Programm ist nicht in einer Endlosschleife, sondern bricht mit einer Zugriffsverletzung bei Adresse xyz ab.
  Mit Zitat antworten Zitat
daywalker9

Registriert seit: 1. Jan 2010
Ort: Leer
594 Beiträge
 
Delphi XE3 Professional
 
#6

AW: Binärbaum rekursiv auslesen

  Alt 26. Jan 2012, 13:39
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.
Lars
  Mit Zitat antworten Zitat
Gargamel

Registriert seit: 19. Mär 2007
171 Beiträge
 
#7

AW: Binärbaum rekursiv auslesen

  Alt 26. Jan 2012, 13:41
Das Programm bricht hier ab:

if node.ChildNode1 <> nil then ReadTree(node.ChildNode1);

Der komplette Code steht hier: http://www.delphipraxis.net/165995-b...-anwenden.html
(Die Funktion ReadTree(...) und deren Aufruf in TForm1.Button1Click(...) kommt dann halt noch hinzu.)

Geändert von Gargamel (26. Jan 2012 um 14:06 Uhr)
  Mit Zitat antworten Zitat
Gargamel

Registriert seit: 19. Mär 2007
171 Beiträge
 
#8

AW: Binärbaum rekursiv auslesen

  Alt 26. Jan 2012, 16:06
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.
  Mit Zitat antworten Zitat
Benutzerbild von Aphton
Aphton

Registriert seit: 31. Mai 2009
1.198 Beiträge
 
Turbo Delphi für Win32
 
#9

AW: Binärbaum rekursiv auslesen

  Alt 26. Jan 2012, 17:52
Die zwei weiteren If-Abfragen sind unnötig, denn beim nächsten Durchlauf wird sowieso darauf geprüft!
Wegmachen!
das Erkennen beginnt, wenn der Erkennende vom zu Erkennenden Abstand nimmt
MfG
  Mit Zitat antworten Zitat
Caesar2012

Registriert seit: 25. Jan 2012
6 Beiträge
 
FreePascal / Lazarus
 
#10

AW: Binärbaum rekursiv auslesen

  Alt 31. Jan 2012, 17:35
EDIT: Delete
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 +1. Es ist jetzt 19:44 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz