[Home |
Algorithmen] |
C. Die Implementations-Sicht Wie läßt sich die Liste in Object-Pascal / Delphi realisieren? Die Sprache bietet als eine einfache Lösung einen Datentyp Array (Feld) an, der sich so darstellen lässt: Der Datentyp ARRAY
Deklaration
Damit ist eine statische Liste deklariert; d. h. es wird vorher festgelegt, wie viele Elemente die Liste aufnehmen kann. Änderungen der der Feldlänge (maximalen Listenlänge) zur Laufzeit sind nicht möglich. Der Index muss skalar (aufzählbar) sein. Als Listenlänge soll vereinbart sein die aktuelle Anzahl der belegten
Komponenten; hier sind es 4. Die Endemarke NIL setzen wir selbst hinter das letzte vorhandene Element; damit haben wir ein sicheres Listenende. Zugriff
Beispiele mit einem array [...] of string; - Schreibender Zugriff:
oder
Die passende Kontrollstruktur zu einem Feld ist die Schleife, mit der sich das ganze Feld überstreichen lässt.
Da der Index skalar ist, lässt er sich auch berechnen:
----------------------------------------------------------------- In OOP / MVC wird man den schreibenden bzw. lesenden Zugriff mit den Methoden
realisieren. ==> Ausblick Die obige Beschreibung ist zwar nicht falsch, aber auch nicht die ganze Wahrheit. Da wir komplexe Objekte in der Liste ablegen, würde man vermuten, dass sich die Objekte dann auch physikalisch in den "Fächern" der Kollektion befinden. Das ist jedoch nicht so. Delphi legt in der Liste lediglich die Adressen (Zeiger, Pointer) ab, wo sich das einzelne Objekt im Arbeitsspeicher befindet, etwa so, wie Links in einer Webseite, die auf andere Seiten zeigen, die wo anders gespeichert sind.
Diese Tatsache lässt sich auch nutzbringend für die Konstruktion von Listen verwenden, die nur aus Zeigerketten bestehen und eine Reihe von Vorteilen bieten, jedoch aufwändiger zu implementieren sind. |