Registriert seit: 17. Jul 2005
885 Beiträge
Delphi 11 Alexandria
|
Re: Gibt es ein Modell für "Doppelt verkettete Listen&a
23. Nov 2006, 18:04
Das ändert nichts an meiner Aussage. Das Problem beim einfügen bleibt. (Und ja, ich weiß, was Capacity ist.)
Für eine Liste würde ich so vorgehen: Zuerst einmal von TObject eine Klasse TElement ableiten. TElement enthält zwei Zeiger auf TElement, dei man Next und Prev nennen könnte, da sie den Vorgänger/Nachfolger in der Liste speichern sollen.
Der Datentyp TDoppeltVerkettete Liste könnte so aussehen:
Je ein Zeiger auf TElement: First, Actual. Dann verschiedened Methoden: Insert, Delete zum Einfügen und Löschen, GetNext, GetPrev, GetFirst, GetLast zum Navigieren in der Liste und evtl. ein paar weitere (IsLast, IsFirst, IsEmpty, InsertAtEnd, InsertAtBeginning, etc.).
Ein Element wird an der aktuellen Stelle eingefügt, indem man die Zeiger Next und Prev des aktuellen Elements, dessen alten Nachfolgers/Vorgängers und des neuen Elements entsprechend setzt/umbiegt - einfach mal aufmalen, dann wird klar, wie man das machen muss. Beim Entfernen entsprechend verfahren.
Das kann man einmal implementieren und anschließend in seinen Programmen Klassen nicht mehr von TObject ableiten, sondern von TElement.
|