L'utilisation de «fermé» ou «ouvert» indique si nous sommes ou non bloqués dans l'utilisation d'une certaine position ou structure de données (c'est une description extrêmement vague, mais j'espère que le reste aide).
Par exemple, «open» dans «open adressing» nous indique l'index (aka. Address) auquel un objet sera stocké dans la table de hachage n'est pas complètement déterminé par son code de hachage. Au lieu de cela, l'index peut varier en fonction de ce qui est déjà dans la table de hachage.
Le «fermé» dans le «hachage fermé» fait référence au fait que nous ne quittons jamais la table de hachage; chaque objet est stocké directement à un index dans le tableau interne de la table de hachage. Notez que cela n'est possible qu'en utilisant une sorte de stratégie d'adressage ouverte. Ceci explique pourquoi «hachage fermé» et «adressage ouvert» sont des synonymes.
Comparez cela avec le hachage ouvert - dans cette stratégie, aucun des objets n'est réellement stocké dans le tableau de la table de hachage; à la place, une fois qu'un objet est haché, il est stocké dans une liste distincte du tableau interne de la table de hachage. «open» fait référence à la liberté que nous obtenons en quittant la table de hachage et en utilisant une liste séparée. À propos, la "liste séparée" indique pourquoi le hachage ouvert est également appelé "chaînage séparé".
En bref, «fermé» fait toujours référence à une sorte de garantie stricte, comme lorsque nous garantissons que les objets sont toujours stockés directement dans la table de hachage (hachage fermé). Ensuite, l'opposé de «fermé» est «ouvert», donc si vous n'avez pas de telles garanties, la stratégie est considérée comme «ouverte».