Você está na página 1de 2

04/03/22, 23:02 Algoritmos e Estruturas de Dados - Exercício 2

IF096
- Algoritmos e Estruturas de Dados

setembro
a dezembro de 2000

Exercício

Entrega:
Terça-feira, 10 de outubro de 2000.

1. Escrever um procedimento para inserção em árvore


AVL (naturalmente isso inclui a rotação simples e a
dupla),
e outro para impressão dos filhos à esquerda e à direita
de um dado nó.

IMPORTANTE:

Leia (e entenda) o texto nas páginas 71 a 77 do livro de


Udi Manber antes de começar a sua
implementação.

Observe que há diversos casos de inserção que


não requerem rotação.

No caso de ser necessário fazer rotação, há


quatro situações diferentes para considerar:

Se A é o nó crítico, B é o seu filho


à esquerda e C seu filho à direita, então:

Balance
de A Lado Inserção Sub_árvore
do Filho Tipo Rotação
-1  esquerda
de A  esquerda
de B SIMPLES 
+1  direita
de A  direita
de C SIMPLES 
-1  esquerda
de A  direita
de B DUPLA 
+1  direita
de A  esquerda
de C DUPLA 

Veja as figuras das rotações: fig1,


fig2, fig3
e fig4.

IMPORTANTE:

A função de inserção deve ser da ordem


de (log n) no pior caso!!!

O seu programa só deve visitar cada nó da árvore


a partir do pai no máximo duas vezes, uma para cada
um dos módulos
acima.

Assim, as informações devem ser ``carregadas'' enquanto


estão disponíveis, obedecendo ao fluxo da
informação.

2. Escreva um programa para, dados n números inteiros,


ordená-los usando o algoritmo Mergesort.

O seu algoritmo deve usar dois arrays, A e B, com n


elementos cada, e alternar entre eles a entrada e a
saída da rotina
Intercala.
Naturalmente, ao nível das folhas a direção deverá
ser: (entrada = A, saída = B).

Este controle deve ser feito através do valor retornado (bottom-up)


pela função Intercala.

IMPORTANTE:
Não use variável global para fazer isso.
3. Faça o exercício 3.5 (pág. 56) do livro de
Udi Manber.

Observe que cada um dos itens deste exercício de comparação


de ordens de magnitude entre funções
cobre um caso diferente.

https://www.cin.ufpe.br/~if096/2000.2/lista2.html 1/2
04/03/22, 23:02 Algoritmos e Estruturas de Dados - Exercício 2

A resposta deste exercício deve ser entregue em papel impresso


junto com o disquete que contém as
questões (1) e (2).

Para cada um dos itens, dê uma justificativa baseada na definição


formal dada em sala.

Seja objetivo (vá direto ao ponto, sem divagações)


e rigoroso na sua justificativa.

Retorna
à página Principal do Curso

[Última alteração em 27.setembro.2000 por


katia.]

https://www.cin.ufpe.br/~if096/2000.2/lista2.html 2/2

Você também pode gostar