Вы находитесь на странице: 1из 2

Instituto Federal de Educao, Cincia e Tecnologia

Curso: Bacharelado em Cincia da Computao


Disciplina: Algoritmos e Estruturas de Dados II
Professor: Mrio Luiz Rodrigues Oliveira
Atividade: 2 Lista de Exerccios
Formiga, MG, 14 de novembro de 2014

LISTA DE EXERCCIOS
NO NECESSRIO ENTREGAR A RESOLUO DESTA LISTA. RESOLVA OS
EXERCCIOS COMO FORMA DE ESTUDAR, ENTENDER E COMPREENDER O
CONCEITO E AS APLICAES DA ESTRUTURA DE DADOS TABELA HASH.
1) Considere o Tipo Abstrato de Dados (TAD) conjunto e as operaes de pertinncia, unio, intercesso,
diferena, insero e remoo. O TAD conjunto pode ser implementado usando uma das seguintes estruturas
de dados: vetor, vetor de bits, lista encadeada, rvore binria e tabela hash com tratamento de colises
usando encadeamento exterior.
a) Compare o custo (melhor caso, pior caso e caso mdio) dessas operaes, usando a notao Big O,
considerando o TAD conjunto implementado usando as seguintes estruturas de dados: rvore binria, lista
encadeada e tabela hash com tratamento de colises usando encadeamento exterior.
b) Implemente, na linguagem de programao C, as operaes de pertinncia, unio, intercesso, diferena,
insero e remoo do TAD conjunto usando as estruturas de dados: rvore binria e tabela hash com
tratamento de colises usando encadeamento exterior. No necessrio fazer um programa que teste as
implementaes.
2) Qual dos esquemas de tratamento de coliso (endereamento aberto ou encadeamento exterior) de tabela
hash consegue tolerar um fator de carga superior a 1 e qual no consegue? Justifique sua resposta.
3) Discuta por que uma tabela hash no adaptada para implementar um dicionrio ordenado.
4) Quais as vantagens e desvantagens da estrutura de dados tabela hash?
5) Qual o tempo do pior caso para inserir n elementos numa tabela hash inicialmente vazia, com colises
sendo resolvidas por encadeamento exterior? Qual seria o melhor caso? E o caso mdio?
6) (ENADE-2008) Tabelas de disperso (tabelas hash) armazenam elementos com base no valor absoluto de
suas chaves e em tcnicas de tratamento de colises. As funes de disperso transformam chaves em
endereos base da tabela, ao passo que o tratamento de colises resolve conflitos em casos em que mais de

Instituto Federal de Educao, Cincia e Tecnologia


Curso: Bacharelado em Cincia da Computao
Disciplina: Algoritmos e Estruturas de Dados II
Professor: Mrio Luiz Rodrigues Oliveira
Atividade: 2 Lista de Exerccios
Formiga, MG, 14 de novembro de 2014
uma chave mapeada para um mesmo endereo da tabela. Suponha que uma aplicao utilize uma tabela de
disperso com 23 endereos (ndices de 0 a 22) e empregue h(x) = x mod 23 como funo de disperso, em
que x representa a chave do elemento cujo endereo deseja-se computar. Inicialmente, essa tabela de
disperso encontra-se vazia. Em seguida, a aplicao solicita uma sequncia de inseres de elementos cujas
chaves aparecem na seguinte ordem: 44, 46, 49, 70, 27, 71, 90, 97, 95. Com relao aplicao descrita,
faa o que se pede a seguir.
a) Escreva o conjunto das chaves envolvidas em colises.
b) Assuma que a tabela de disperso trate colises por meio de encadeamento exterior. Esboce a tabela de
disperso para mostrar seu contedo aps a sequncia de inseres referida.
7) Suponha que uma aplicao utilize uma tabela hash com 7 endereos (ndices de 0 a 6) e empregue h(x) =
x mod 7 como funo de disperso, em que x representa o cdigo ASCII do caractere cujo endereo desejase computar. Inicialmente, essa tabela de disperso encontra-se vazia. Em seguida, a aplicao solicita uma
sequncia de inseres de caracteres. Desenhe o contedo da tabela hash resultante da insero dos 12
primeiros caracteres do seu nome, desprezando os caracteres em branco. Assuma que a tabela de disperso
trate colises por meio de encadeamento exterior.
8) Suponha que uma aplicao utilize uma tabela hash com 12 endereos (ndices de 0 a 11) e empregue
h(x) = x mod 12 como funo de disperso, em que x representa o cdigo ASCII do caractere cujo endereo
deseja-se computar. Inicialmente, essa tabela de disperso encontra-se vazia. Em seguida, a aplicao
solicita uma sequncia de inseres de caracteres. Desenhe o contedo da tabela hash resultante da insero
dos 12 primeiros caracteres do seu nome, desprezando os caracteres em branco. Assuma que a tabela de
disperso trate colises por meio da tcnica de endereamento aberto.

Referncias:
[1] ZIVIANI, Nvio. Projeto de Algoritmos: com implementao em Pascal e C. 3 edio revista e
ampliada. So Paulo: Cengage Learning, 2011.
[2] CORMEN, T. et al. Algoritmos: Teoria e Prtica. 2 edio. Rio de Janeiro: Editora Campus, 2002.
[3] CELES, Waldemar, CERQUEIRA, Renato, RANGEL, Jos Lucas. Introduo a Estruturas de Dados Com Tcnicas de Programao em C. 1 edio. Rio de Janeiro: Editora Campus, 2004.
[4] WIRTH, Niklaus. Algoritmos e Estruturas de Dados. 1 edio. Rio de Janeiro: Editora LTC, 1989.