is-Logo

Dynamische Datenobjekte
Zeigerverkettete lineare Liste

S. Spolwig

[Home | Algorithmen]

Page down

Der Einsatz von dynamischen Datenobjekte erlaubt die Konstruktion von dynamischen Listen, also solchen, die bei Bedarf automatisch wachsen und beim Löschen von Elemente sich entsprechende verkleinern. Hier die Grundidee der einfach verketteten Liste, die auf der Listendefinition unserer bisher benutzten statischen Listen  basiert.

Ein Listenelement enthält die Anwendungsdaten sowie einen Zeiger auf das nächste Element.

Die Liste ist dann nichts weiter als eine Kette von aneinander gehängten Elementen und einem Zeiger auf die Liste.

Die Deklaration könnte wie folgt aussehen:

type
   TElementzeiger  = ^TElemente;                  (* Pointer-Typ *)   
   TElemente = record
		 daten     : string[30];
		 naechster : TElementzeiger;
	       end;
   TListen  = record
		liste, 			         (* zeigt auf die Liste *))
		aktueller : TElementzeiger;	  (* nur zum Durchlaufen *)
		lilaenge  : integer;		  (* jeweils akt. Länge  *)
	      end;

Diese Deklarationen enthält einen sog. Listenkopf (TListen), auf den auch verzichtet werden kann.

Zeigerverkettete Listen sind eine der wichtigsten Datenstrukturen in der Informatik, insbesondere bei Betriebssystemen. Neben der dynamischen Speicherverwaltung erlauben sie, beliebige Netze von Zellen zu konstruieren, bei denen die Zellen durch Zeiger verknüpft sind. Unter diesen Datenstrukturen sind Bäume die häufigsten.

Listen werden in vielen Sprachen realisiert durch die Kombination eines Pointertyps und eines Records. Andere Hochsprachen (z. B. JAVA) verzichten auf Zeigersemantik und implementieren statt dessen Referenzen  und Klassen.



©    20. November 2007    Siegfried Spolwig

Page top