Title: Defini
1Árvores AVL
Definição Uma árvore binária vazia é sempre
balanceada por altura. Se T não é vazia e TL e TR
são suas sub-árvores da esquerda e direita, então
T é balanceada por altura se 1. TL e TR são
balanceadas por altura 2. hl - hrlt1, onde hl
e hr são as alturas de TL e TR respectivamente.
Adelson-Velskii e Landis em 1962 apresentaram uma
árvore de busca binária que é balanceada com
respeito a altura das sub-árvores. Uma
característica importante deste tipo de árvore é
que uma busca é realizada em O(lg(n)) se a árvore
possui n nós.
2INSERSÃO
A inserção em árvores AVL e basicamente a mesma
das árvores binárias com algumas considerações
para manter o balanceamento da árvore. Uma breve
explicação sobre o Algoritmo de Inserção Todo
novo nodo inserido tem fator de balanceamento
igual a zero. O algoritmo é recursivo (não
necessariamente) isso, cria um caminho entre o
nodo inserido e a raiz. O algoritmo sendo
recursivo faz a verificação de balanceamento no
desempilhar das suas chamadas. Se for inserido
um nodo à esquerda o fator de balanceamento do
nodo pai tornar-se-a -1. Se for inserido um
nodo à direita o fator de balanceamento do nodo
pai tornar-se-a 1.
3Se um nodo for inserido à esquerda e o fator de
balanceamento de seu avô for -1 e seu pai
também tiver fatbal -1 é feita uma rotação
simples à direita. Se um nodo for inserido à
direita e o fator de balanceamento de seu avô
for 1 e seu pai também tiver fatbal 1 é feita
uma rotação simples à esquerda. Se um nodo for
inserido à esquerda e o fator de balanceamento de
seu avô for -1 e seu pai tiver fatbal 1 à e
feita uma rotação dupla para direita. Se um nodo
for inserido à direita e o fator de balanceamento
de seu avô for 1 e seu pai tiver fatbal -1 é
feita um rotação dupla a esquerda. É necessário
ressaltar que o balanceamento de uma sub-árvore
TL pertencente a árvore T não implica que T
também esteja balanceada pois, a ação de ajuste
da sub-árvore TL pode ter desequilibrado a árvore
T, então o algoritmo deve tratar esta situação,
mas sendo o algoritmo recursivo este caso será
verificado a cada desempilhar da chamada anterior
e assim será garantido que a árvore T esteja
balanceada.
Ver
Ver
Ver
Ver
4Rotação Simples à Direita
Nodo avô desequilibrado fatbal -1 e fatbal do
pai -1
p
Avô gt
Fatbal
0
-1
Fatbal 0
u
Pai gt
u
Fatbal
0
-1
q
p
q
Fatbal
0
Fatbal 0
Fatbal 0
Ok árvore balanceada
Volta
5Rotação Simples à Esquerda
Nodo avô desequilibrado fatbal1 e pai fatbal1.
Fatbal
0
1
p
u
Avô gt
u
Fatbal
0
1
Pai gt
p
q
q
Fatbal 0
OK árvore balanceada
Volta
6Rotação Dupla à Direita
Avô desequilibrado fatbal -1 e pai 1
p
p
0
-1
Fatbal
q
Fatbal 0
Avô gt
Rotação simples à direita entre p e q.
u
q
Pai gt
Fatbal
0
1
u
p
Rotação simples para esquerda entre u e q.
Fatbal 0
Fatbal 0
u
q
Fatbal 0
OK árvore balanceada
Volta
7Rotação Dupla à Esquerda
Avô desequilibrado fatbal 1 e pai -1
p
Fatbal
0
1
p
q
Fatbal 0
Uma rotação simples para esquerda entre p e q
u
q
Fatbal
0
-1
Pai gt
p
u
Uma rotação simples para direita entre u e q
Fatbal 0
Fatbal 0
q
u
Fatbal 0
OK árvore balanceada
Volta