Autor Beitrag
maximilian
Hält's aus hier
Beiträge: 4

WinXP
Delphi 2005 Home
BeitragVerfasst: 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 :P und hab jetzt keinen bock mehr.

mfg max
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8549
Erhaltene Danke: 478

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Do 04.01.07 17:22 
Hallo und :welcome: 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
ontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 324
Erhaltene Danke: 2

Linux

BeitragVerfasst: Do 04.01.07 19:33 
Hallo :wave:
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 Threadstarter
Hält's aus hier
Beiträge: 4

WinXP
Delphi 2005 Home
BeitragVerfasst: Fr 05.01.07 15:18 
:-D 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 :-P.

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 Threadstarter
Hält's aus hier
Beiträge: 4

WinXP
Delphi 2005 Home
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 324
Erhaltene Danke: 2

Linux

BeitragVerfasst: Fr 05.01.07 18:59 
user profile iconmaximilian hat folgendes geschrieben:
:-D 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? :gruebel:

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 :-P.

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).

:shock: *nochmal liest* :shock: Du solltest lernen den Sinn hinter eigenen Prozeduren zu verstehen...

mfg

Christian

_________________
Kaum macht man's richtig, schon klappts!
maximilian Threadstarter
Hält's aus hier
Beiträge: 4

WinXP
Delphi 2005 Home
BeitragVerfasst: 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 :-P . 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.