Baixe o app para aproveitar ainda mais
Prévia do material em texto
Tabela Hash Tratamento de colisões por endereçamento separado (listas encadeadas) emanoelim@utfpr.edu.br Listas encadeadas • Em vez de procurar uma posição vaga, cada posição do vetor guarda o início de uma lista encadeada. • Toda chave mapeada para a mesma posição é adicionada na lista: Listas encadeadas Listas encadeadas • Usamos listas encadeadas pois não sabemos quantas colisões podem acontecer. • Para inserir um item, deve-se calcular a posição e inserir o item no início da lista correspondente. Assim, a inserção sempre terá custo O(1). Listas encadeadas • Para buscar / remover um item, deve-se calcular a posição e percorrer a lista até achar o item desejado. O custo será proporcional ao tamanho da lista (ou ao número de colisões que aconteceram na posição). Referências • Ziviani, N. “Projeto de algoritmos com implementações em C e Pascal”, Cengage Learning, 3ª ed., 2010. • Notas de aula Prof. Luis Gustavo Nonato: http://www.lcad.icmc.usp.br/~nonato/ED/Hashing/node33.html • Vídeo aulas sobre tabela hash: https://www.youtube.com/watch?v=njkANXEMHTY
Compartilhar