Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi TList : Array oder verkettete Liste? (https://www.delphipraxis.net/22037-tlist-array-oder-verkettete-liste.html)

Jacki O 11. Mai 2004 17:19


TList : Array oder verkettete Liste?
 
Hallo,

ich habe nun wiedersprüchliches gehört und gelesen. Die einen sagen, das TList dynamisches Array ist andere sagen, das es sich um eine verkettete Liste handelt. Was ist denn nun richtig ?

Gruß Jacki

Bernhard Geyer 11. Mai 2004 17:25

Re: TList : Array oder verkettete Liste?
 
Nach einem Blick in die Implementierung würde ich sagen das es ein Zeiger-Array ist.
Die Speicherung der Elemente erfolg in einem PPointerList
Code:
  PPointerList = ^TPointerList;
  TPointerList = array[0..MaxListSize - 1] of Pointer;

maximov 11. Mai 2004 17:27

Re: TList : Array oder verkettete Liste?
 
Hallo!

Zitat:

Zitat von Der delphi sourcecode
Delphi-Quellcode:
PPointerList = ^TPointerList;
  TPointerList = array[0..MaxListSize - 1] of Pointer;
 ...
  TList = class(TObject)
  private
    FList: PPointerList;
    FCount: Integer;
    FCapacity: Integer;
  protected
  ...

Also keins von beiden! -> Mit einer statischen array-pointer deklaration gefaketes dynamisches array! Is übrigens ein cooler trick den ich auch gerne anwende.

neolithos 11. Mai 2004 18:31

Re: TList : Array oder verkettete Liste?
 
Wieso trick so sieht ein dynamisches Array in "Wirklichkeit" aus.

=> Also beherbergt TList ein dynamisches Array.

maximov 12. Mai 2004 09:43

Re: TList : Array oder verkettete Liste?
 
Stimmt schon...nur in delphi haben dyn-arrays referenz-counter und PiPaPo. Wenn man es selbst verwalten möchte, dann nimmt man halt diesen normalen "trick" :wink: ...für die meistens wird es auf den ersten blick ein statisches array sein. Erst im code wird dann ersichtlich warum es dynamisch ist.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:33 Uhr.

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