AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi optische darstellung von binären Bäumen
Thema durchsuchen
Ansicht
Themen-Optionen

optische darstellung von binären Bäumen

Ein Thema von Gregor00 · begonnen am 28. Feb 2004 · letzter Beitrag vom 8. Mär 2004
Antwort Antwort
Gregor00

Registriert seit: 18. Aug 2003
29 Beiträge
 
Delphi 5 Standard
 
#1

optische darstellung von binären Bäumen

  Alt 28. Feb 2004, 14:36
Guten Tag zusdammen, ich bins mal wieder

Also Folgendes zu meinem problem:
Ich habe hier einen Binären Baum (sortiert, nicht ausgewogen)programmiert, hier ist der Quelltext

Delphi-Quellcode:
Zeiger = ^Knoten;
  Knoten = Record
             Links: Zeiger;
             Rechts: zeiger;
             Inhalt: Integer;
           end;

var
  Form1: TForm1;
  a: Integer;
  Wurzel: Zeiger;
implementation

{$R *.DFM}

Procedure Einfuege (zahl: Integer; var Lauf: Zeiger);
  Begin
    If Lauf = Nil Then
      begin
        New(lauf);
        With Lauf^ do
          Begin
            Inhalt:= zahl;
            links:= Nil;
            rechts:= Nil;
          end;
      end
    else
      if Zahl < Lauf^.Inhalt then Einfuege (zahl, lauf^.Links)
        else
          If Zahl > lauf^.Inhalt then Einfuege (zahl, Lauf^.Links)
  end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Wurzel:= NIL;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  Zahl: Integer;
begin
  a:= StrToInt(Edit1.Text);
  Einfuege (a, Wurzel);
end;
Dabei ist a die zahl die in dem Baum eingefügt werden soll.
ber den Button1 soll der baum aufgebaut werden, d.h. die Zahl, in Edit1 angegeben wird (= a) soll in den baum einsortiert werden.
Das problem läuft sacheinbar auch, bloß habe ich keine ahnung, wie ich den baum optisch ausgeben soll. Bis jetzt bleibt Form1 immer grau.
Kann hier jemand eingie optisch ansprechende, jedoch nicht zu schwer umzusetzende Ideen geben, wie ich den ganzen baum auf Form1 darstellen könnte??
erste ideen von mir waren irgendwie mit Canvas was zu machen, kam dabei aber nicht weiter...eine zweite idee war ganz viele labels zu benutzen, das erschien mir aber 1) zu kompliziert, 2) würde es nicht besonders aussehen

also ich hoffe ihr habt alles verstanden danke schonmal für alle Vorschläge

cu gregor
  Mit Zitat antworten Zitat
Martin Vieregg

Registriert seit: 27. Feb 2004
Ort: München
3 Beiträge
 
#2

Re: optische darstellung von binären Bäumen

  Alt 1. Mär 2004, 11:03
Hallo Gregor,

ich denke Du hast zwei Möglichkeiten:

(1) Du verwendest tTreeView, also eine Baumdarstellung ähnlich dem Windows Explorer zum auf- und zuklappen.

(2) Oder Du programmierst doch selber einen grafischen Output. Hierfür solltest Du in tPaintbox zeichnen (dann muß man sich nicht um das Neuzeichnen beim Wiederaufdecken der Form kümmern). Also Paintbox1.Canvas.Moveto, Lineto, DrawRect, TextOut. Um den Baum zu zeichnen, bietet sich eine rekursive Prozedur an, die den Hauptpunkt zeichnet und dann zum Zeichnen der zwei Unterpunkte sich selbst zweimal aufruft. (Um rekursiven Code erzeugen zu dürfen, gibt es ein Compilersetting.)

Martin Vieregg
  Mit Zitat antworten Zitat
Gregor00

Registriert seit: 18. Aug 2003
29 Beiträge
 
Delphi 5 Standard
 
#3

Re: optische darstellung von binären Bäumen

  Alt 8. Mär 2004, 18:56
Hallo Martin
thx für die Antwort schonmal...

Ja, sowas ähnliches hab ich mir schon vorgestellt allerdings sind noch ein paar Fragen offen:

also ich habe mir die rekursive Funktion folgendermaßen vorgestellt: Es wird ein gleichwinkliges Dreieck gezeichnet, an deren Spitzen jeweils ein Kreis gezeichnet wird. (In diesen Kreis soll dann die Zahl geschrieben werden). An die kreise jeweils links und rechts soll dan je ein weiteres dreieck gezeichnet werden, wieder mit je einem kreis links und rechts. etc....
Die dreieck werden natürlich farbig nicht ausgefüllt und die untere Querlinien (welche parallel zur Form sind) müssen noch weg gemacht werden.

so, ich hoffe soweit ist die Rekursion klar (muss ich erst noch in einen Quelltext umnsetzen)
jetzt ist aber die Frage, wie ich die entsprechende zahl in den entsprechen kreis bekomme!

Außerdem ist mir ncht ganz klar was Drawrect ist. ich hab in der onlinehilfe nachgeschaut aber nichts gefunden....

thx schonmal für alle weiteren antworten und sorry wenn sich das ganze ein wenig kompliziert anhört...

mfg Gregor
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: optische darstellung von binären Bäumen

  Alt 8. Mär 2004, 18:58
Zitat von Martin Vieregg:
(2) Oder Du programmierst doch selber einen grafischen Output. Hierfür solltest Du in tPaintbox zeichnen (dann muß man sich nicht um das Neuzeichnen beim Wiederaufdecken der Form kümmern).
Doch gerade da muss man es. Aber mit einem Bitmap Speicher sollte das kein Problem sein.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
xineohp

Registriert seit: 29. Jan 2004
Ort: Heusenstamm
420 Beiträge
 
Delphi 2005 Professional
 
#5

Re: optische darstellung von binären Bäumen

  Alt 8. Mär 2004, 19:46
hi,

Ich hab mal was in der Richtung geproggt, kannst es dir ja mal anschaun. Is warscheinlich nicht perfekt, aber für meinen Infolehrer hats gereicht.
Angehängte Dateien
Dateityp: rar bin_rerbaum.rar (210,2 KB, 30x aufgerufen)
Peter Enenkel
  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 10:30 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