AGB  ·  Datenschutz  ·  Impressum  







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

Binären Suchbaum ausgeben

Ein Thema von jamma-markus · begonnen am 13. Dez 2006
Antwort Antwort
Benutzerbild von jamma-markus
jamma-markus

Registriert seit: 16. Okt 2004
Ort: Kempen
58 Beiträge
 
#1

Binären Suchbaum ausgeben

  Alt 13. Dez 2006, 18:03
Hallo zusammen.

ich möchte einen binären Suchbaum wie folgt in einer Memobox ausgeben.
Code:
......5
...3.....8
.1...4.6...9
..2.....7
die Punkte solltet ihr euch jetzt weg denken, die sind nur zur formatierung hier im forum da.

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:
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;
ich hoffe ihr könnt mir helfen.
  Mit Zitat antworten Zitat
Antwort Antwort


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 22:46 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