Pular para o conteúdo principal

Questão de Algoritmos e Estrutura de Dados — Hashing — FUNDATEC 2023

Algoritmos e Estrutura de DadosHashing
Código
qq896686
Banca
FUNDATEC
Órgão
PROCERGS
Ano
2023
Nível
Superior
Cargo
ANC - Analista em Computação - Ênfase em Administração de Dados
Em uma tabela hash com tratamento de colisão por endereçamento aberto, qual é a condição de parada do algoritmo de inserção quando não é possível encontrar uma posição livre na tabela?
  1. AExceção de tabela cheia.
  2. BRetorno de erro.
  3. CDupla dispersão.
  4. DRemoção de item aleatório.
  5. ERedimensionamento da tabela.
Revelar gabarito e comentário

GabaritoA — Exceção de tabela cheia.

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Tabela hash com endereçamento aberto – condição de parada na inserção

Gabarito: letra A. Em uma tabela hash que resolve colisões por endereçamento aberto (sondas lineares, quadráticas ou duplo hash), o algoritmo de inserção percorre as posições da tabela até encontrar um slot vazio. Se a tabela estiver completamente preenchida (nenhuma posição livre), a inserção não pode ser concluída; essa situação é a condição de parada por falta de espaço. A alternativa A (Exceção de tabela cheia) descreve exatamente essa condição: o algoritmo para porque constata que a tabela está cheia. As demais alternativas tratam de ações posteriores ou de técnicas de resolução, não da condição que interrompe a inserção.

Condição de Parada

Descrição

Relação com a Inserção

Tabela cheia (Alternativa A)

Nenhum slot livre disponível na tabela

É a condição que interrompe o algoritmo de inserção

Retorno de erro (Alternativa B)

Sinalização de falha na inserção

É uma consequência da condição de parada, não a condição em si

Dupla dispersão (Alternativa C)

Técnica de sondagem para calcular próximo índice

Define como percorrer a tabela, não quando parar

Remoção de item aleatório (Alternativa D)

Ação para liberar espaço

É uma possível ação posterior, não a condição de parada

Redimensionamento da tabela (Alternativa E)

Aumento do tamanho da tabela

É uma resposta à condição de parada, não a condição em si

Alternativa A — ✅ Correta ⟵ GABARITO

A condição de parada do algoritmo de inserção é a inexistência de posição livre, ou seja, a tabela cheia. Nas implementações típicas, isso gera uma exceção (ou sinaliza erro), mas a condição em si é a constatação de que todos os slots estão ocupados.

Alternativa B — ❌ Incorreta

"Retorno de erro" é uma consequência da condição de parada (tabela cheia), não a condição em si. A pergunta é explícita: qual a condição que faz o algoritmo parar? O retorno de erro é o que se faz quando a condição ocorre, mas não é a condição.

Alternativa C — ❌ Incorreta

"Dupla dispersão" (double hashing) é uma das estratégias de sondagem dentro do endereçamento aberto. Ela define como calcular o próximo índice a ser visitado, não a condição de parada.

Alternativa D — ❌ Incorreta

"Remoção de item aleatório" não é uma prática padrão em tabelas hash com endereçamento aberto. Remover um item para liberar espaço é uma possível ação após a parada, mas não é a condição que a causa.

Alternativa E — ❌ Incorreta

"Redimensionamento da tabela" é uma ação corretiva que pode ser tomada quando a tabela fica cheia (realocar para um tamanho maior). Assim como o retorno de erro, não é a condição de parada, mas uma resposta a ela.

PEGA ESSA DICA!

Na prova, lembre-se: a condição de parada do laço de inserção em endereçamento aberto é tabela cheia (ou, equivalentemente, nenhum slot livre). As alternativas que listam ações (lançar exceção, redimensionar, etc.) são confundidas com a condição. Fixe: condição = estado da tabela; ação = o que se faz com esse estado.

Link permanente: /questoes/qq896686