Die Verwendung von "geschlossen" vs. "offen" spiegelt wider, ob wir an die Verwendung einer bestimmten Position oder Datenstruktur gebunden sind oder nicht (dies ist eine äußerst vage Beschreibung, aber hoffentlich hilft der Rest).
Beispielsweise gibt das "Öffnen" in "Offene Adressierung" an, dass der Index (auch bekannt als "Adresse"), unter dem ein Objekt in der Hash-Tabelle gespeichert wird, nicht vollständig durch seinen Hash-Code bestimmt wird. Stattdessen kann der Index variieren, je nachdem, was bereits in der Hash-Tabelle enthalten ist.
Das "geschlossene" in "geschlossenes Hashing" bezieht sich auf die Tatsache, dass wir die Hash-Tabelle niemals verlassen; Jedes Objekt wird direkt an einem Index im internen Array der Hash-Tabelle gespeichert. Beachten Sie, dass dies nur mit einer offenen Adressierungsstrategie möglich ist. Dies erklärt, warum "geschlossenes Hashing" und "offene Adressierung" Synonyme sind.
Vergleichen Sie dies mit offenem Hashing. Bei dieser Strategie wird keines der Objekte tatsächlich im Array der Hash-Tabelle gespeichert. Sobald ein Objekt gehasht ist, wird es in einer Liste gespeichert, die vom internen Array der Hash-Tabelle getrennt ist. "offen" bezieht sich auf die Freiheit, die wir erhalten, wenn wir die Hash-Tabelle verlassen und eine separate Liste verwenden. "Separate Liste" gibt übrigens Hinweise darauf, warum offenes Hashing auch als "separate Verkettung" bezeichnet wird.
Kurz gesagt, "geschlossen" bezieht sich immer auf eine strenge Garantie, beispielsweise wenn wir garantieren, dass Objekte immer direkt in der Hash-Tabelle gespeichert werden (geschlossenes Hashing). Dann ist das Gegenteil von "geschlossen" "offen". Wenn Sie also keine solchen Garantien haben, wird die Strategie als "offen" betrachtet.