[UE ALGO 2 Homepage] Übungen zu Algorithmen und Datenstrukturen 2 WS 98/99

6. Übung - abzugeben am 17. 11. 1998 in Ihrer Übungsgruppe


6.a.1 Theorie

Gegeben: Eine konsekutive und eine einfach verkettete Liste. Stellen sie diese Konzepte bei der Durchführung der folgenden Operationen gegenüber: Geben Sie für jeden Fall die möglichen Abbruchkriterien an.

6.a.2 Theorie

Gegeben ist eine doppelt verkettete Liste, deren erster und letzter Knoten vom Kopf aus direkt erreichbar sind. Stellen Sie die Listenstruktur und die Zeigermanipulationen graphisch und als Codefragment dar: Was fällt Ihnen dabei auf?


6.b Programm

Implementieren Sie ein Modul mit folgender Interface Definition bzw. Implementationshilfe:

DEFINITION OF MODULE Stack;
  CONST BLKS=??; (* e.g. 5 = number of elements per stack element *)
  TYPE
    ElemT* = LONGINT; (* data element type *)
    StElemT = RECORD (* stack element type *)
      a: ARRAY BLKS OF ElemT; (* data elems per stack elems *)
      next: ...; (* next stack element *)
    END;
    NodeT = POINTER TO StElemT;
    StackT*=RECORD ... END;

  PROCEDURE (VAR st:StackT) Init*();
  PROCEDURE (VAR st:StackT) CleanUp*();
  PROCEDURE (VAR st:StackT) Push*(elem:ElemT);
  PROCEDURE (VAR st:StackT) Pop*():ElemT;
  PROCEDURE (VAR st:StackT) Empty*():BOOLEAN;
  PROCEDURE (VAR st:StackT) NrOfElems*():LONGINT;
  PROCEDURE (VAR st:StackT) Dump*(); (* dump blockwise *)
END Stack.
Anmerkungen:


6.c Diskussion


Last modified: hoermanseder@fim.uni-linz.ac.at 98-11-09