![]() |
AW: Binärbaum rekursiv auslesen
Hier noch eine kleine Verbesserung um den Forscherdrang zu befriedigen:
Mit dem Parameter "Level" kann man nachverfolgen, wie tief ein Knoten im Baum steckt. Beim 1. Aufruf gibt übergibt man den Level mit 0. Das "Abgrasen" eines Baums nennt man übrigens "Besuchen" oder "Traversieren";
Delphi-Quellcode:
Schau mal was passiert, wenn man die Reihenfolge des Besuchens umstellt:
procedure VisitTree(node:PNode; Level:integer); // preorder traversal
Begin if node<>nil then Begin Form1.ListBox1.Items.Add(Format('%s [%d]', [node.name, Level]); // zu Kontrollzwecken in Listbox anzeigen VisitTree(node.ChildNode1, Level + 1); VisitTree(node.ChildNode2, Level + 1); end; End;
Delphi-Quellcode:
procedure VisitTree(node:PNode; Level:integer); // inorder traversal
Begin if node<>nil then Begin VisitTree(node.ChildNode1, Level + 1); Form1.ListBox1.Items.Add(Format('%s [%d]', [node.name, Level]); // zu Kontrollzwecken in Listbox anzeigen VisitTree(node.ChildNode2, Level + 1); end; End; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:21 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