Die wichtigsten dynamischen Datenstrukturen sind lineare Listen (einfach oder doppelt verkettete Listen) und Bäume.
Lineare Liste, eindimensionale Anordnung von Listenelementen.
Einfach verkettete Liste, jedes Listenelement enthält einen Zeiger auf das nächste Listenelement.
Doppelt verkettete Liste,
jedes Listenelement enthält Zeiger auf das nächste und
das vorhergehende Listenelement.
Das letzte Element einer Liste hat keinen Nachfolger.
Der entsprechende Zeiger wird daher auf den
Wert NIL gesetzt.
Ringliste, lineare Liste, deren letztes Element einen
Zeiger zurück auf das erste Element enthält.
Einfügen und Löschen in einer einfach verketteten
linearen Liste.
TYPE element=RECORD
key: ~integer;
next:
element;
END;
VAR listenanfang,hilf,position:
element;
.
.
(* Einfuegen in Liste *)
new(hilf);
hilf
.next:=position
.next;
position
.next:=hilf;
.
.
(* Loeschen aus Liste *)
hilf:=position
.next;
position
.next:=hilf
.next;
dispose(hilf);
.
.
(* Ausdrucken der Listenelemente *)
position:=listenanfang;
WHILE position<>NIL DO BEGIN
writeln(position
.key);
position:=position
.next;
END;
.
.
Hier wird jeweils nach dem Element, auf das der Zeiger position deutet, in die Liste eingefügt bzw. der Nachfolger des Elementes, auf das position zeigt, gelöscht.