Registriert seit: 17. Jul 2005
877 Beiträge
Delphi 11 Alexandria
|
Re: Gibt es ein Modell für "Doppelt verkettete Listen&a
23. Nov 2006, 16:50
In einer Liste kann man sehr schnell einfügen und löschen. Nämlich in konstanter Zeit, ganz egal, wie lang die Liste ist. Dafür benötigt man Objekte, die Zeiger auf das nächste (und vorige) Element in dieser Liste speichern können.
Da TList als Array implementiert ist, ist diese Eigenschaft da nicht gegeben. Wenn die TList voll ist, und man ein neues Objekt einfügen möchte, muss man komplett umkopieren. Ebenso muss komplett umkopiert werden, wenn man das erste Element entfernen möchte. Man muss zwar nicht die Objekte umkopieren, aber alle Zeiger. Vom Aufwand her ist das prinzipiell egal.
Bei einer echten Liste müssen beim Löschen/Einfügen immer nur ein paar Zeiger umgehangen werden.
Wenn es also darum geht, die Datenstruktur "Liste" zu implementieren, dann sollte man nicht von TList ausgehen. Array und Liste sind zwei völlig unterschiedliche Strukturen!
|