![]() |
AW: Doppelt verkettete Liste als generischer Typ
Ich glaube du vermischst hier Daten und die Listen-Items. Falls ich dich richtig verstehe würde es meiner Meinung nach so aussehen:
Delphi-Quellcode:
type
TChainList<T> = class(TPersistent) private FData:T; FDeleting: Boolean; FEol: Boolean; FPredecessor: TChainList; FSuccessor: TChainList; function GetEol: Boolean; procedure SetDeleting(const Value: Boolean); property Deleting: Boolean read FDeleting write SetDeleting; public destructor Destroy; override; procedure Add(Item: T); function Delete: TChainList; function Last: TChainList; function First: TChainList; function Next: TChainList; function Previous: TChainList; property Eol: Boolean read GetEol; property Data: T read FData write FData; end; TTestClass = class(TChainList<string>) end; |
AW: Doppelt verkettete Liste als generischer Typ
Was hältst Du von diesem Ansatz?
Delphi-Quellcode:
Und wenn Du unbedingt willst, kannst Du die Listenklasse weglassen und alles in der Element-Klasse implementieren.
type
TChainElement<T> = class private FData: T; FNext: TChainElement<T>; FPrior: TChainElement<T>; public property Data: T read FData write FData; property Next: TChainElement<T> read FNext write FNext; property Prior: TChainElement<T> read FPrior write FPrior; end; TChain<T> = class private FFirstElement: TChainElement<T>; FLastElement: TChainElement<T>; FCurrentElement: TChainElement<T>; function GetNext: TChainElement<T>; function GetPrior: TChainElement<T>; function GetBOF: Boolean; function GetEOF: Boolean; function GetFirst: TChainElement<T>; function GetLast: TChainElement<T>; public function Add: TChainElement<T>; procedure Delete(Item: TChainElement<T>); procedure Clear; property BOF: Boolean read GetBOF; property EOF: Boolean read GetEOF; property First: TChainElement<T> read GetFirst; property Last: TChainElement<T> read GetLast; property Next: TChainElement<T> read GetNext; property Prior: TChainElement<T> read GetPrior; end; [edit] Na toll, da tippe ich mir einen ab und andere sind wieder schneller. [/edit] |
AW: Doppelt verkettete Liste als generischer Typ
Zitat:
Grüße, Uwe |
AW: Doppelt verkettete Liste als generischer Typ
In Spring4D gibt's auch
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:08 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz