Sunteți pe pagina 1din 2

Lista V Introdução à Computação II, 5954006 Prof.

Renato Tinós

Lista de Exercícios V – Tabelas Hash

1) (ZIVIANI, 2004) Considerando a busca linear, binária e a baseada em funções de Hashing:


a) Descreva as vantagens e desvantagem de cada uma das técnicas.
b) Qual a eficiência de utilização de memória (relação entre o espaço necessário para os dados
e o espaço total necessário) para cada método.

2) Deseja-se um aplicativo em que se consiga inserir, buscar e remover as informações de alunos


(Código USP, Nome e Curso) baseado em Tabelas Hash e utilizando arquivos. Pede-se:
a) Desenvolva este programa em C/C++ usando como chave de busca a nome do aluno
b) Desenvolva este programa em C/C++ usando como chave de busca a Código USP.
c) Sabendo-se que o código é único por aluno, qual seria a melhor implementação para se fazer
uma busca mais eficiente das quais foram vistas no curso?

3) (KRUSE & RYBA, 1998) Elabore um programa capaz de inserir e buscar uma fórmula
molecular. Quando a fórmula molecular estiver presente nos dados armazenados e ela for
buscada, o respectivo peso molecular deve aparecer na tela. Por exemplo, sendo a fómula
H2SO4 , o peso molecular seria 98g/mol (2xH + 1xS + 4xO sendo H=1, S=32 e O=16). Utilize
Tabelas Hash, considerando apenas que as moléculas possam ser formadas pelos elementos H,
S, O e C.

4) O que é e qual a finalidade de uma função de Hashing?

5) Considere o problema de ordenação de vetores com tamanho n>1 e com elementos inteiros não-
repetidos que podem assumir valores entre -2n e 2n+5 . Pede-se
a) Escreva uma função de ordenação que tenha tempo linear ( isto é, que seja O(n) ) para este
problema.
b) Seria interessante utilizar Tabelas Hash para este problema? Justifique sua resposta
Lista V Introdução à Computação II, 5954006 Prof. Renato Tinós

Referências:

[1] N. ZIVIANI (2004). “Projeto de Algoritmos”, Thomson.

[2] KRUSE, R. L. & RYBA, A. J. (1998). “Data Structures and Program design in C++”, Pratice
Hall.

S-ar putea să vă placă și