Sobes.tech
Junior — Middle

Magyarázza el a nyílt címezés elvét a map típusú asszociatív tárolók megvalósításában.

sobes.tech MI

Válasz az MI-től

Nyitott címezés egy módszer a kollíziók megoldására hash-táblákban, mint például a map. Amikor egy kulcs-érték párt adunk hozzá, és a számított hash egy foglalt cellára mutat, akkor a szabad cella keresése a tömbön belül történik egy meghatározott szekvenciát követve (például lineáris vagy kvadratikus próbálkozás).

Ahelyett, hogy láncolt listákat használna a kollíziókhoz (láncok), a nyitott címezés minden elemet egyetlen tömbben tárol, és egymás után ellenőrzi a szomszédos pozíciókat, amíg üreset nem talál.

Lineáris próbálkozás példája:

// hash - hash függvény
// table - tömb az elemek tárolására
// i - próbálkozások száma
index := (hash(kulcs) + i) % len(table)

Ez a megközelítés memória takarékos a mutatók számára, de ellenőrizni kell a táblázat terhelését, hogy elkerüljük a teljesítmény romlását.