Exercícios sobre árvores AVL

Propaganda
Exercícios sobre árvores AVL
Rodrigo de Alencar Hausen
Exercício 1. Demonstre que o número de operações para manter uma árvore binária de busca
ótima após uma inserção, no pior caso, é Ω(n) (dica: construa uma árvore binária completa e insira
um elemento que faça com que todos os elementos tenham que ser rearranjados para voltarmos à uma
árvore ótima). Interprete o resultado.
Exercício 2. Escreva o pseudo-código completo da inserção.
Exercício 3. Demonstre que cada uma das rotações duplas pode ser feita por meio de duas
rotações simples.
Exercício 4. Escreva o pseudo-código para remoção em uma árvore AVL. Considere que a
remoção pode dar origem a O(log n) operações de rotação.
Exercício 5. (Opcional - Implementação) Implementar o algoritmo para inserção, remoção e
busca em uma árvore AVL em uma liguagem qualquer. Gere n nós, com n = 1 . . . 100000 e meça
o pior tempo e o tempo médio necessários para inserções, buscas e remoções. Faça um gráfico e
interprete os resultados.
Exercício 6. (Extra) Quantas árvores AVL existem com altura 1, 2, 3 e 4? Faça o mesmo
considerando um número mínimo de nós (dica: construa todas as possíveis árvores binárias que
também sejam AVL).
Exercício 7. (Extra. Requer conhecimento de prova por indução) Demonstre a fórmula fechada para o número de Fibonacci
apresentada em aula (dica: talvez seja mais fácil usar a fórmula
√
n
an −(1−a)
1+
5
√
Fn =
, com a = 2 ).
5
Os exercícios marcados com “extra” são opcionais, para aqueles que desejam obter maior
conhecimento matemático sobre o assunto.
Bibliografia
CORMEN, T. H.; LEISERSON, C. E.; RIVEST, R. L. e STEIN, C. Introduction to Algorithms, 3a
edição, MIT Press, 2009.
SZWARCFITER, J. L. e MARKENZON, L. Estruturas de Dados e seus Algoritmos, LTC, 1994.
ZIVIANI, N. Projeto de Algoritmos: com implementações em Pascal e C, 2a edição, Cengage Learning, 2009.
Download