Junior — Middle
Explique o princípio de endereçamento aberto na implementação de contêineres associativos do tipo map.
sobes.tech IA
Resposta da IA
O endereçamento aberto é um método de resolução de colisões em tabelas de hash, como o map. Ao adicionar um par chave-valor, se o hash calculado indicar uma célula ocupada, a busca por uma célula livre ocorre dentro do array seguindo uma determinada sequência (por exemplo, sondagem linear ou quadrática).
Em vez de usar listas ligadas para colisões (cadeias), o endereçamento aberto armazena todos os elementos dentro de um único array, verificando sequencialmente as posições vizinhas até encontrar uma vazia.
Exemplo de sondagem linear:
// hash - função de hash
// table - array para armazenar elementos
// i - número de tentativa
index := (hash(chave) + i) % len(table)
Este método economiza memória em ponteiros, mas requer controle sobre a carga da tabela para evitar a degradação do desempenho.