Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   verkettete Listen (https://www.delphipraxis.net/196047-verkettete-listen.html)

Gerkey 18. Apr 2018 12:17

verkettete Listen
 
Suche ein einfaches vollständiges Beispielprogramm (Delphi Seattle) für verkettete Listen.
Kann mir da jemand helfen ?

Neutral General 18. Apr 2018 12:20

AW: verkettete Listen
 
Versuch es selbst und schau dir den Wikipedia Artikel oder so dazu an.
Verkettete Listen sind echt nicht schwer ;)

Wenn du nicht weiterkommst, sag Bescheid woran es hängt und wir helfen dann.

Ghostwalker 18. Apr 2018 13:05

AW: verkettete Listen
 
Zwar kein Beispielcode aber ein Tutorial zum Thema:

Zeiger & Zeigerketten

Neutral General 18. Apr 2018 13:07

AW: verkettete Listen
 
--- Bitte ignorieren (oder löschen) ---

KodeZwerg 18. Apr 2018 13:17

AW: verkettete Listen
 
Zitat:

Die Domain moonraven.kilu.de ist noch frei!
Existieren die PDFs noch wo anders?

Neutral General 18. Apr 2018 13:18

AW: verkettete Listen
 
Zitat:

Zitat von KodeZwerg (Beitrag 1399695)
Zitat:

Die Domain moonraven.kilu.de ist noch frei!
Existieren die PDFs noch wo anders?

Genau sowas stand in meinem Post oben den ich wegeditiert hab, bis ich gemerkt hab, dass im Thread eine Zip mit dem PDF angehangen ist ;)

KodeZwerg 18. Apr 2018 13:25

AW: verkettete Listen
 
Ohhh mein Fehler! Ich hatte das Zip nicht geladen weil ich dacht das da Sourcecode drinnen ist.
Ich nehm alles zurück, alles ist da wie es sein sollte, tut mir leid für spamm!

Dennis07 18. Apr 2018 17:27

AW: verkettete Listen
 
...oder man schaut sich einfach an, wie es andere machen. Es gibt tausende Beispiele.
zB die DeHL.Collections.LinkedList.pas von der DeHL: https://github.com/pavkam/DeHL/blob/...LinkedList.pas

Oder die ReferenceData-Typen der Lina Components Library: https://bitbucket.org/Dennis07/lina-...ysTools.pas-87

Sinn machen verkettete Listen aber nur in den wenigsten Fällen. Es ist meistens nur zum Üben sinnvoll. Siehe hier.

p80286 18. Apr 2018 23:24

AW: verkettete Listen
 
Gut zu lesen, was sinnvoll ist.

Bisher neigte ich eher zu dieser Auffassung:

Zitat:

Zitat von stoxx (Beitrag 925444)
Zitat:

und nein, mir fällt gerade kein einfaches _und_ praktisches Beispiel für Zeigerlisten ein, welches man im Tutorial verwenden könnte)
man braucht sie nicht oft, aber wenn, dann sind sie sehr effektiv.

Als dynamischer Datenbuffer sind sie sehr gut geeignet. Du möchtest hinten in einer Liste etwas anhängen, und manchmal vorn etwas rausnehmen.
Alle array basierten Lösungen wie TList zb. haben nun das Problem, dass diese ja immer zusammenhängenden Speicher benötigen.
Beim löschen oder einfügen eines Elementes an erste Stelle wird das komplette Pointerarray nach vorn oder hinten geschoben. und das ist lahm, wie man so schön sagt :-)

Gruß
K-H

Ghostwalker 19. Apr 2018 05:32

AW: verkettete Listen
 
Zitat:

Zitat von Dennis07 (Beitrag 1399733)
Sinn machen verkettete Listen aber nur in den wenigsten Fällen. Es ist meistens nur zum Üben sinnvoll. Siehe hier.

Da muss ich Einspruch erheben.

1. Vergleicht er das ganze mit seiner Implementierung einer Zeigerkette. Ich weißt nicht was er da gebaut hat,
aber der Overhead bei einer Zeigerkette dürfte um einiges weniger sein, als bei TList.

a) TList ist eine Klasse. D.h. ich hab die ganze Verwaltung eines Objektes dahinter.
b) TList basiert auf einem Array. Wie p80286 schon anführte, gibts da einige Nachteile.

2. Komplexere Datenstrukturen (z.B. Baumstrukturen) kommst du mit einer TList nicht weiter.

Das beste Beispiel für Verkette Listen, das mir bekannt ist, dürfte der VirtualTree (VirtualStringTree) sein. TList hat seine Stärke, wenn ich eine einfache (sprich 1.Dimensional) List von Daten brauche. Sobalds komplexer wird, ist eine richtig angewandte verkette Liste weit effizienter.


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:59 Uhr.
Seite 1 von 3  1 23      

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