Autor |
Beitrag |
maximilian
Hält's aus hier
Beiträge: 4
WinXP
Delphi 2005 Home
|
Verfasst: Do 04.01.07 17:16
hey leute^^, mein erster post:
Also ich habe das problem, dass ich einen Binärbaum erstellen will. Dieser soll ein array, was ich eingelesen habe sortieren und zeigen. So da ich für nen suchbaum zu blöd bin, bzw das noch zu weit hinten in unserm infobuch liegt, hab ich mir gefacht: Kein Problem, ich nehme das array, suche irgend ne zahl (am besten wohl die mitte) aus und mache dann weiter, vergleiche jede zahl mit der mitte. Wenn sie kleiner is als die mitte erstell ich nen rechten Teilbaum, wenn sie größer is als die mitte, dann nen linken, und dann immer weiter verzweigt. (Endlosschleiße kanns nich geben weil ich dem array, 20 felder gegeben habe.)
Geht das so???
(ich werde ma versuchen bis morgen den Quelltext fertig zu bekommen, sitz schon ewig an der sache dran  und hab jetzt keinen bock mehr.
mfg max
|
|
Gausi
      
Beiträge: 8549
Erhaltene Danke: 478
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: Do 04.01.07 17:22
Hallo und  in der Entwickler-Ecke!
Ja, wenn ich dich richtig verstehe, kannst du das so machen. Und wenn du das zum laufen bekommst, dann hast du nen Suchbaum fertig. Und wenn du die Knoten in dem Baum in der richtigen Reihenfolge (linker Teilbaum, Wurzel, rechter Teilbaum) durchgehst, hast du die Zahlen der Größe nach sortiert vorliegen
_________________ We are, we were and will not be.
|
|
r2c2
      
Beiträge: 324
Erhaltene Danke: 2
Linux
|
Verfasst: Do 04.01.07 19:33
Hallo
bin mir nicht ganz sicher, ob ich dich richtig verstanden hab, aber, so, wie ich das sehe: Jo, funktioniert. Nennt sich QuickSort und ist - wenn man den Algo kennt - recht leicht zu implementieren[1]. Guck dir mal folgendes an: www.sortieralgorithmen.de Auch in der Wikipedia gibts interessante Artikel dazu...
Allerdings weiß ich nicht genau, was das mit dem Suchbaum zu tun hat. Den braucht man bei der Binärsuche und da muss das array bereits sortiert sein...
[1] Wenn es auch deutlich einfachere gibt...
mfg
Christian
_________________ Kaum macht man's richtig, schon klappts!
|
|
maximilian 
Hält's aus hier
Beiträge: 4
WinXP
Delphi 2005 Home
|
Verfasst: Fr 05.01.07 15:18
 naja quicksort kenn ich ja^^, aber es funzt ja doch nich ganz so^^.
Das einzige was ähnlich is, dass ich zeiger benutze. Das eigentliche Qsort ist das nicht, weil die procedure nut einma durchläuft, und sich ja nicht selbst wieder aufruft... oder?
Suchbaum: Is doch dazu da: verschiedene Zahlen in nem sortierten baum zu finden, hinzuzufügen (an der richtigen Stelle) und wieder zu löschen, oder hab ich das falsch verstanden? hab derzeit nur in das thema reingeschnuppert muss ich zugeben  .
Nun ja, wenn ich fertig bin und irgendwas nicht läuft kann ich ja ma den quelltext posten. (Hab mir ma andere Lösungen angesehn... ihr macht das viel komplizierter, aber dafür kann man die prozeduren immer wieder aufrufen ... ich programmier fast nie in eigenen prozeduren).
danke max
|
|
maximilian 
Hält's aus hier
Beiträge: 4
WinXP
Delphi 2005 Home
|
Verfasst: Fr 05.01.07 18:57
mir kam grad die frage, ob ich die TBaumstruktur in nem neuen unit definieren muss, oder ob ich das auch in der normalen machen kann?
und warum die vermaledeite TList auf einma (schon mehrmals programmiert , aba win neu installiert und alles war weg.., naja auf einma is die auch nich mehr definiert... warum das?
type
TBaumstruktur = class (TObject)
private
hknoten: TObject;
hSoehne: TList;
...
_________________ wenn du "real" bist, kannst du nicht verlieren,
weil du nicht spielst.
|
|
r2c2
      
Beiträge: 324
Erhaltene Danke: 2
Linux
|
Verfasst: Fr 05.01.07 18:59
maximilian hat folgendes geschrieben: | naja quicksort kenn ich ja^^, aber es funzt ja doch nich ganz so^^.
|
Dann hab ich dich also nur falsch verstanden...
Zitat: |
Das einzige was ähnlich is, dass ich zeiger benutze.
|
QuckSort? Zeiger?
Zitat: |
Das eigentliche Qsort ist das nicht, weil die procedure nut einma durchläuft, und sich ja nicht selbst wieder aufruft... oder?
|
Jo. Dann sortierst du aber auch nicht, sondern suchst nur...
Zitat: |
Suchbaum: Is doch dazu da: verschiedene Zahlen in nem sortierten baum zu finden, hinzuzufügen (an der richtigen Stelle) und wieder zu löschen, oder hab ich das falsch verstanden? hab derzeit nur in das thema reingeschnuppert muss ich zugeben .
|
Genau das ist ein Suchbaum. Und da ein Baum nix anderes ist, als ein mathematisches Modell, musst du dafür keine extra Datenstruktur aufbauen, sondern kannst - genauso, wie du es - mein ich - gesagt hast - die Position einfach "errechnen"(Mitte = Wurzel, etc.).
Unter Binarysearch solltest du genügend finden. Wenn du willst, kannst du dir auch meine Facharbeit angucken. Da is das Prinzip auch erläutert(wenn auch nur im Anhang und mehr auf der mathematischen Ebene)...
Zitat: |
ich programmier fast nie in eigenen prozeduren).
|
 *nochmal liest*  Du solltest lernen den Sinn hinter eigenen Prozeduren zu verstehen...
mfg
Christian
_________________ Kaum macht man's richtig, schon klappts!
|
|
maximilian 
Hält's aus hier
Beiträge: 4
WinXP
Delphi 2005 Home
|
Verfasst: Fr 05.01.07 19:50
Danke dir.
ähm, ja ich kenn den sinn, aber im unterricht sind die Programme nicht soo komplex dass ich andere Prozeduren nicht umgehen könnte  . Naja is eheer so nen kurs, beleg ihn und du hast ne 13 im Zeugnis stehn... Die Aufgaben sind dermaßen leicht, dass ich es einfach nicht gewohnt bin für alles ne eigene prozedur zu erstellen und die dann aufzurufen, wenn ich die button.click procedure schreibe.
max
_________________ wenn du "real" bist, kannst du nicht verlieren,
weil du nicht spielst.
|
|
|