|
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.
|
Copyright © 1999 Andreas Borchert, in HTML konvertiert am 29.06.1999 |