Autor Beitrag
blafu
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Di 03.01.06 18:57 
Hallo,

ich wuerde gerne ein (recht) simples Programm schreiben, das mir numerische Werte aus einem Edit einliest und sie dann beim Klicken des zugehoerigen Button an einen binaeren Suchbaum anhaengt. Die Werte des Baumes sollten dann in den drei Formen WLR, LWR, LRW ausgeben. Fuer das Ausgeben habe ich gar keine praktische Umsetzungsidee und fuer das Anhaengen weiss ich leider nur, wie es theoretisch funktioniert.


Es wuerde mich sehr freuen, wenn mir jemand weiterhelfen koennte - danke.


Zuletzt bearbeitet von blafu am Di 03.01.06 20:45, insgesamt 1-mal bearbeitet
blafu Threadstarter
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Di 03.01.06 19:56 
Fuer die Ausgabe habe ich jetzt auch eine Idee.

Jetzt waere nur das Problem, wie ich einen Pointer an eine procedure uebergebe

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
procedure WertHinzufuegen(Zeiger : KnotenPointer);
begin
  if (Zeiger = NILthen begin
    New(Zeiger);
    Zeiger^.Daten := Zahl;
    Zeiger^.Links := NIL;
    Zeiger^.Rechts := NIL
  end else if Zeiger^.Daten >= Zahl then
    Zeiger^.Links := WertHinzufuegen(Zeiger^.Rechts)
  else if Zeiger^.Daten <= Zahl then
    Zeiger^.Rechts := WertHinzufuegen(Zeiger^.Rechts)
end;


Moderiert von user profile iconraziel: Code- durch Delphi-Tags ersetzt
DaRkFiRe
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 526

WinXP Home & Professional
C, C++, Delphi
BeitragVerfasst: Di 03.01.06 21:05 
Also quasi inorder, postorder und preorder

Such da mal bei google - da findest Du sicherlich etwas Pseudocode, da es doch schon sehr elementar ist. Damit solltest Du Dein Problem dann umsetzen können...


MfG

_________________
Lang ist der Weg durch Lehren - kurz und wirksam durch Beispiele! Seneca
blafu Threadstarter
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Di 03.01.06 21:34 
user profile iconDaRkFiRe hat folgendes geschrieben:
Also quasi inorder, postorder und preorder

Such da mal bei google - da findest Du sicherlich etwas Pseudocode, da es doch schon sehr elementar ist. Damit solltest Du Dein Problem dann umsetzen können...


MfG


Ja, genau. Das Problem habe ich inzwischen aber auch geloest.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
procedure LWROut(Zeiger : KnotenPointer);
begin
  LWROut(Zeiger^.Links);
  Memo1.Lines.Add(IntToStr(Zeiger^.Daten));
  LWROut(Zeiger^.Rechts);
end;

procedure WLROut(Zeiger : KnotenPointer);
begin
  Memo1.Lines.Add(IntToStr(Zeiger^.Daten));
  LWROut(Zeiger^.Links);
  LWROut(Zeiger^.Rechts);
end;

procedure LRWOut(Zeiger : KnotenPointer);
begin
  LWROut(Zeiger^.Links);
  LWROut(Zeiger^.Rechts);
  Memo1.Lines.Add(IntToStr(Zeiger^.Daten));
end;


Nur funktioniert das alles noch nicht, da Delphi die Pointer nicht uebernehmen will.

Moderiert von user profile iconraziel: Code- durch Delphi-Tags ersetzt