Gegeben sei folgendes Programm:
MODULE a5; FROM InOut IMPORT WriteCard, WriteLn; FROM Storage IMPORT ALLOCATE; TYPE Liste = POINTER TO ListElement; ListElement = RECORD next: Liste; content: CARDINAL END; VAR liste,p: Liste; CONST anz = 10; PROCEDURE buildList(VAR head: Liste); VAR i: CARDINAL; p: Liste; BEGIN head := NIL; FOR i:=1 TO anz DO NEW(p); p^.content := i; p^.next := head; head := p END END buildList; PROCEDURE printList(p:Liste); BEGIN WHILE p <> NIL DO WriteCard(p^.content,6); p := p^.next; END; WriteLn; END printList; PROCEDURE whatever(VAR p: Liste; x: CARDINAL):Liste; VAR q: Liste; BEGIN IF p=NIL THEN RETURN NIL ELSE IF p^.content = x THEN q:=p; p:=p^.next; RETURN q ELSE RETURN whatever(p^.next,x) END END END whatever; BEGIN buildList(liste); printList(liste); p := whatever(liste,5); WriteCard(p^.content,6); WriteLn; printList(liste); END a5.Geben Sie an, was dieses Programm ausgibt!
10 9 8 7 6 5 4 3 2 1 5 10 9 8 7 6 4 3 2 1