Gegeben sei eine einfach verkettete Liste:
TYPE Liste = POINTER TO ListElement; ListElement = RECORD next: Liste; content: CARDINAL END;
Schreiben Sie eine Prozedur, die alle Elemente mit content = 0 verkettet; die gegebene Verkettung (Komponente next) soll dazu benutzt werden. Das letzte Element der Liste enthält in der Komponente next den Wert NIL.
PROCEDURE newList(VAR head: Liste);
PROCEDURE newList(VAR head: Liste); VAR p,q: Liste; BEGIN p:= head; head := NIL; WHILE p <> NIL DO IF p^.content = 0 THEN q:=p; p:=p^.next; q^.next := head; head := q; ELSE p:=p^.next; END; END; END newList;