Você está na página 1de 21

AULA e09

Algoritmos e Estruturas de Dados I

Árvores AVL – Rotações


(visão geral)

Prof. Luciano Antonio Digiampietri


Árvores AVL
São árvores de busca binária balanceadas
(também chamadas de balanceadas na altura).
● O nome AVL vem de seus criadores Adelson
Velsky e Landis, cuja primeira referência
encontra-se no documento "Algoritmos para
organização da informação" de 1962.
Árvores AVL
● Além das características de uma árvore de
busca binária, possuem uma propriedade
adicional para garantir o balanceamento.
● Para todo nó, a diferença (em valor absoluto)
entre a altura da subárvore à direita e à
esquerda será, no máximo, 1 (um).
● As operações de inserção e exclusão devem
garantir essa propriedade.
Árvores AVL
● Graças a esta propriedade, a altura de uma
árvore AVL será limitada a O(log n), conforme
será visto ao longo desta disciplina.
Árvores AVL
● Definiremos o balancemanto de um nó como
a diferença entre a altura de sua subárvore à
direita e a altura de sua subárvore à esquerda.
● O balanceamento de um nó de uma árvore AVL
sempre valerá -1, 0 ou 1.
Inserções em Árvore de Busca
Binária
● Desejamos inserir três elementos, na seguinte
ordem: 1, 2 e 3
Inserções em Árvore de Busca
Binária
● Desejamos inserir três elementos, na seguinte
ordem: 1, 2 e 3

1
0
Inserções em Árvore de Busca
Binária
● Desejamos inserir três elementos, na seguinte
ordem: 1, 2 e 3

1
1

2
0
Inserções em Árvore de Busca
Binária
● Desejamos inserir três elementos, na seguinte
ordem: 1, 2 e 3

1
2

2
1

3
0
Inserções em Árvore AVL
● Desejamos inserir três elementos, na seguinte
ordem: 1, 2 e 3

2
0

1 3
0 0
Inserções em Árvore AVL
● Realiza-se a inserção seguindo as regras de
árvores de busca binária, de maneira recursiva.
● Durante a volta da recursão, atualiza-se o
balanceamento de cada nó e verifica se ele
viola a propriedade de um árvore AVL.
● Notem que o nó inserido (balanceamento igual a
zero) e seu pai não irão violar a regra.
● Se o nó atual violar a propriedade, realiza-se
uma “rotação” para corrigira a árvore.
Inserções em Árvore AVL

-1

0 0

0 0
Inserções em Árvore AVL

-1

0 0

0 0
Inserções em Árvore AVL

-2

-1 0

1 0

0
Inserções em Árvore AVL
A partir do nó inserido:
-2 O primeiro nó com
balanceamento igual a -2,
se existir, será chamada
-1 0 de p (o “problema”)
● Seu filho, no sentido da
1 0
inserção será chamado
de u
● Seu neto, no sentido da
0 inserção será chamado
de v
Inserções em Árvore AVL
p A partir do nó inserido:
-2 O primeiro nó com
balanceamento igual a -2,
u se existir, será chamada
-1 0 de p (o “problema”)
v
● Seu filho, no sentido da
1 0
inserção será chamado
de u
● Seu neto, no sentido da
0 inserção será chamado
de v
Inserções em Árvore AVL

u
u

v p
v
Inserções em Árvore AVL
● Há quatro configurações possíveis para
p, u e v:
p p p p
30 30 10 10

u u u u
10 20 20 30

v 20 10 v v 30 20 v
Inserções em Árvore AVL
Posição relativa de u em relação à p e de v em relação à u:

Esquerda- Esquerda- Direita- Direita-


Direita Esquerda Direita Esquerda
LR LL RR RL
30 30 10 10
L L R R
10 20 20 30
R L R L
20 10 30 20
Inserções em Árvore AVL
LR LL RR RL
30 30 10 10
L L R R
10 20 20 30
R L R L
20 10 30 20
20

10 30
AULA e09
Algoritmos e Estruturas de Dados I

Árvores AVL – Rotações


(visão geral)

Prof. Luciano Antonio Digiampietri

Você também pode gostar