Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#11

AW: Binärbaum rekursiv auslesen

  Alt 31. Jan 2012, 17:56
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:
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;
Schau mal was passiert, wenn man die Reihenfolge des Besuchens umstellt:
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;
Andreas
  Mit Zitat antworten Zitat