![]() |
Binären Suchbaum ausgeben
Hallo zusammen.
ich möchte einen binären Suchbaum wie folgt in einer Memobox ausgeben.
Code:
die Punkte solltet ihr euch jetzt weg denken, die sind nur zur formatierung hier im forum da.
......5
...3.....8 .1...4.6...9 ..2.....7 mein bisherige ansatz sieht so aus. b ist der zeiger auf einen knoten (beim ersten aufruf also ein pointer auf die 5). zeile gibt die aktuelle höhe im suchbaum an. left ist dazu da, um zu wissen, ob gerade ein linker teilbaum ausgegeben werden soll
Delphi-Quellcode:
ich hoffe ihr könnt mir helfen.
procedure TForm1.anzeigen(b: TBaumzeiger; zeile: Integer; left: Boolean);
var temp, links: String; laenge : integer; begin if b <> NIL then begin laenge := (90 div ((zeile + 1) * 2)); if left then temp := Format('%' + inttostr(laenge) + 's%' + inttostr(laenge) + 's', [b^.inhalt, ' ']) else temp := Format('%' + inttostr(laenge) + 's', [b^.inhalt]); if zeile = memo1.Lines.count then memo1.Lines.Add(''); memo1.Lines[zeile] := memo1.Lines[zeile] + temp; anzeigen(b^.left, zeile+1, true); anzeigen(b^.right, zeile+1, false); end else begin laenge := (90 div (zeile + 1)) div 2; laenge := (90 div ((zeile + 1) * 4)); if left then temp := Format('%' + inttostr(laenge) + 's%' + inttostr(laenge) + 's', [' ', ' ']) else temp := Format('%' + inttostr(laenge) + 's', [' ']); if zeile = memo1.Lines.count then memo1.Lines.Add(''); memo1.Lines[zeile] := memo1.Lines[zeile] + temp; end end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:04 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-2025 by Thomas Breitkreuz