Sektion Angewandte Informationsverarbeitung

Übungen zu Programmieren II, Sommersemester 1996

Blatt 16, 10 Punkte

Abgabe: Donnerstag, den 30.05.1995

Aufgabe 20

Die Ausgabe von linearen Listen in umgekehrter Reihenfolge (d.h. vom Listenende zum Anfang) bereitet etwas Probleme, da vom jeweiligen Listenelement zu dessen Vorgänger gesprungen werden muß, auf den Vorgänger gibt es aber in einer einfach verketteten Liste kein Verweis.
Eine Lösung dieses Problems wäre, eine doppelt verkettete Liste zu verwenden. Man kann die Liste aber auch mittels Rekursion ausgeben. Sie bevorzugen im Moment den zweiten Lösungsvorschlag, da dies keine Änderung der Listenstruktur erfordert.

a) Schreiben Sie eine Prozedur, welche eine lineare Liste mit n Elementen, aufsteigend numeriert, erzeugt. Die Listengenerierung soll rekursiv erfolgen.

b) Schreiben Sie eine rekursive Prozedur, welche eine lineare Liste in umgekehrter Reihenfolge ausgibt.

c) Schreiben Sie eine rekursive Prozdeur zum Freigeben der Liste.

Hinweise:

Testen Sie die Prozedur aus Teilaufgabe a), indem Sie die generierte Liste zunächst auf die bekannte Art "von vorne nach hinten" ausgeben.