Allgemeine Informatik II SoSe 2001
Prof. Dr. H. Neumann Dr. K. Murmann S. Geschwentner Dr. F. Schwenker

2. Aufgabenblatt (bis zum 17.05.2001)


3. Aufgabe:
Entwickeln Sie Prozeduren und Funktionsprozeduren, die es Ihnen erlauben, eine Liste mit Studentennamen zu verwalten. Verwenden Sie dabei als Datenstruktur eine linked list mit den nachfolgenden Definitionen. Das letzte Element der Liste kann als NIL-Zeiger oder durch einen Wächterknoten realisiert werden.


CONST 
   Namenlaenge = 40;
TYPE 
   nameStr  = ARRAY [0..Namenlaenge] OF CHAR;
  
   listPtr  = POINTER TO listElem;

   listElem = RECORD
                 studName    : nameStr;
                 nachfolger  : listPtr
              END;

VAR 
   liste : listPtr;

Implementieren Sie die folgenden Prozeduren und Funktionsprozeduren. Dabei kann von der vereinfachenden Annahme ausgegangen werden, dass es keine Studenten mit gleichem Namen gibt.

  1. PROCEDURE einfuegen(studName : nameStr; VAR liste : listPtr);

    Die Prozedur einfuegen hängt den neu einzufügenden Studenten-Namen studname am Anfang der Liste liste ein ( liste ist keine sortierte Liste).

  2. PROCEDURE loeschen(studName : nameStr; VAR liste : listPtr);

    Diese Prozedur löscht den angegebenen Namen aus der Liste. Der nicht mehr benötigte Speicherplatz soll freigegeben werden.

  3. PROCEDURE suchen(studName : nameStr; liste : listPtr) : BOOLEAN;

    Die Funktionsprozedur suchen liefert TRUE zurück, falls der angegebene Name in der Liste enthalten ist, andernfalls FALSE.

  4. PROCEDURE ausgeben(liste : listPtr);

    Die Prozedur ausgeben gibt die in der Liste liste gespeicherten Namen aus.

4. Aufgabe:
Schreiben Sie ein Modula-2 Programm UnsortierteListe zum Testen Ihrer Prozeduren und Funktionsprozeduren. Unter anderem soll Ihr Testprogramm folgende Listenoperationen durchführen:

  1. Einfügen der nachfolgenden Namen in die Liste (in der angegebenen Reihenfolge):

    Maier, Mueller, Schuster, Zimmermann, Adam, Schmid, Sudermann, Sommer, Winter.

  2. Ausgabe der in der Liste enthaltenden Namen mittels der Prozedur ausgeben.

  3. Überprüfen, ob die folgenden Namen in der Liste enthalten sind:

    Abt, Adam, Mueller, Zimmermann.

  4. Löschen der Namen

    Mueller, Zimmermann, Winter, Maier

    aus der Liste und Ausgabe der aktualisierten Liste.

Skizzieren Sie die Veränderungen von Liste beim Löschen von Mueller graphisch.





Stefan Geschwentner
2001-05-11