Implementierung assoziativer Arrays VI

 [Vorheriges Kapitel]  [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]

Hashes.om
PROCEDURE Delete(hash: Hash; key: Objects.Object);
   (* precondition: key must be hashable for hash
      deletes object out of hash that has a key that
      is considered equal to key
   *)
   VAR
      hashval: HashValue;
      entry, predecessor: Entry;
BEGIN
   IF Find(hash, key, hashval, entry, predecessor) THEN
      IF predecessor = NIL THEN
         hash.bucket[hashval] := entry.next;
      ELSE
         predecessor.next := entry.next;
      END;
   END;
END Delete;

*Das Löschen erfolgt analog zu einfachen linearen Listen, wobei hashval nur bestimmt, auf welcher Liste operiert wird.
 
*predecessor wird von Find auf den Vorgänger des zu löschenden Eintrags gesetzt. Dieser ist NIL, wenn der erste Eintrag zu löschen ist.
 

 [Vorheriges Kapitel]  [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]
Copyright © 1999 Andreas Borchert, in HTML konvertiert am 29.06.1999