Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Binaerbaum-/Pointerproblem
blafu - Di 03.01.06 18:57
Titel: Binaerbaum-/Pointerproblem
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.
blafu - 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
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| procedure WertHinzufuegen(Zeiger : KnotenPointer); begin if (Zeiger = NIL) then 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
raziel: Code- durch Delphi-Tags ersetzt
DaRkFiRe - 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
blafu - Di 03.01.06 21:34
DaRkFiRe 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.
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
raziel: Code- durch Delphi-Tags ersetzt
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!