Sobes.tech
Junior — Middle

Explicați principiul adresării deschise în implementarea containerelor asociative de tip map.

sobes.tech AI

Răspuns de la AI

Adresarea deschisă este o metodă de rezolvare a coliziunilor în tabelele hash, precum map. La adăugarea unui cuplu cheie-valoare, dacă hash-ul calculat indică o celulă ocupată, căutarea unei celule libere se face în interiorul array-ului urmând o anumită secvență (de exemplu, sondare liniară sau pătratică).

În loc să folosească liste înlănțuite pentru coliziuni (lanțuri), adresarea deschisă stochează toate elementele într-un singur array, verificând secvențial pozițiile adiacente până găsește una goală.

Exemplu de sondare liniară:

// hash - funcție de hash
// table - array pentru stocarea elementelor
// i - numărul de încercări
index := (hash(cheie) + i) % len(table)

Această metodă economisește memorie pentru pointeri, dar necesită controlul încărcării tabelului pentru a evita degradarea performanței.