Universität Ulm, Fakultät für Mathematik und Wirtschaftswissenschaften, SAI

WS 97/98 || Entwicklung objekt-orientierter Bibliotheken || Übungen || Assoz. Arrays

DEFINITION Dictionaries


(*
 *	Entwicklung objekt-orientierter Bibliotheken, Aufgabe 7
 *
 *	Abstraktion fuer assoziative Arrays.
 *)
DEFINITION Dictionaries;

   IMPORT ConstStrings, Disciplines, Objects;

   TYPE
      Key = ConstStrings.String;

      Dictionary = POINTER TO DictionaryRec;
      DictionaryRec =
	 RECORD
	    (Disciplines.ObjectRec)
	 END;

      AddProc = PROCEDURE (dict: Dictionary; key: Key; object: Objects.Object);

      RemoveProc = PROCEDURE (dict: Dictionary; key: Key);

      GetProc = PROCEDURE (dict: Dictionary; key: Key;
			   VAR object: Objects.Object): BOOLEAN;

      CardProc = PROCEDURE (dict: Dictionary): INTEGER;

      FirstProc = PROCEDURE (dict: Dictionary);
      NextProc = PROCEDURE (dict: Dictionary;
			   VAR key: Key; VAR object: Objects.Object): BOOLEAN;

      Interface = POINTER TO InterfaceRec;
      InterfaceRec =
	 RECORD
	    add:     AddProc;
	    remove:  RemoveProc;
	    get:     GetProc;
	    card:    CardProc;
	    first:   FirstProc;
	    next:    NextProc;
	 END;

   PROCEDURE Init(dict: Dictionary; if: Interface);

   PROCEDURE Add(dict: Dictionary; key: Key; object: Objects.Object);

   PROCEDURE Remove(dict: Dictionary; key: Key);

   PROCEDURE Get(dict: Dictionary;
		  key: Key; VAR object: Objects.Object): BOOLEAN;

   PROCEDURE Card(dict: Dictionary): INTEGER;

   PROCEDURE First(dict: Dictionary);
   PROCEDURE Next(dict: Dictionary;
		  VAR key: Key; VAR object: Objects.Object): BOOLEAN;

END Dictionaries.

WS 97/98 || Entwicklung objekt-orientierter Bibliotheken || Übungen || Assoz. Arrays

Martin Hasch, 21. November 1997