Escolar Documentos
Profissional Documentos
Cultura Documentos
rvores Balanceadas
Aspecto importante em arvores , naturalmente, o custo de
acesso a uma chave desejada.
As rvores binrias que foram estudadas at o presente momento
quando implementadas oferecem um baixo custo de acesso, mas
com um certo nmero de inseres e remoes este custo fica
elevado.
Para manter este custo ao longo da utilizao, a estrutura deve
ser alterada periodicamente de forma a moldar os novos dados,
esta estrutura denominada de Balanceada.
rvores Completas
rvores AVL
Uma rvore binria denominada AVL quando para qualquer n as
alturas de suas duas subrvores, esquerda e direita, diferem em
mdulo de at uma unidade.
rvore AVL
rvores de altura balanceada ou de altura
equilibrada foram introduzidas em 1962 por
Adelson-Velskii e Landis, tambm conhecidas
como rvores AVL
A definio de uma rvore binria de altura
equilibrada (AVL) requer que cada subrvore
seja tambm de altura equilibrada
rvores Balanceadas
Suponha que o n q foi includo em T. Se aps a incluso todos os ns
se mantiveram regulados, ento a rvore manteve-se AVL e no h
nada a efetuar. Caso contrario, seja p o n mais prximo s folhas de
T que se tornou desregulado. Ento p se encontra no caminho de q
raiz de T, e sua escolha nica.
Concluise que em uma rvore AVL a incluso de um n no pode
aumentar em mais de uma unidade de altura de qualquer sub-rvore.
Fator de Balanceamento
O fator de balanceamento ou fator de
equilbrio de um n T em uma rvore binria
definido como sendo hL hR onde hL e hR
so as alturas das subrvores esquerda e
direita de T, respectivamente.
Para qualquer n T numa rvore AVL, o fator
de balanceamento assume o valor -1, 0 ou +1
O fator de balanceamento de uma folha
zero
Diferena de altura do n
Filho do n desbalanceado
Tipo de rotao
Simples direita
Simples direita
-1
Simples esquerda
-1
Simples esquerda
-2
Fator de Balanceamento
Fator de Balanceamento
Remoo
Remoo
Remoo
Remoo
Remoo
Remoo
Remoo
Remoo
Remoo
Remoo
Remoo
Remoo
Remoo
Remoo
Remoo
Implementao da incluso
Seja T uma rvore AVL e x a chave a ser includa em algum novo n q.
O processo completo de incluso pode ser dividido da seguinte forma:
- Efetua-se uma busca em T para verificar se x existe;
- Caso afirmativo processo encerrado;
- Caso negativo:
A busca encontra o local da incluso;
Em seguida verifica-se se algum n esta desregulado;
Caso negativo processo termina;
Caso afirmativo a regulagem de T deve ser
efetuada
Implementao da incluso
Como verificar se algum n v em T tornou-se desregulado aps a
incluso:
Para isso basta determinar as alturas de suas duas sub-rvores e
subtrair uma da outra.
Implementao da incluso
Caso 1: balano(v) = 1 antes da incluso
Neste caso, balano(v) torna-se 0(zero) e a altura da sub-rvore
de raiz v no foi modificada
Implementao da incluso
Caso 3: balano(v) = -1 antes da incluso
Neste caso, balano(v) torna-se -2 e o n esta desregulado. A
rotao correta deve ser empregada.
Algoritmo
,aux, tipo)
If (raiz == NULL)
raiz = pt;
If (aux != NULL)
if (tipo == E)
aux->esq = pt;
else
aux->dir = pt;
also
also
,Aux, tipo)
,aux,tipo)
erdadeiro
,pt, E)
also
,pt, D)
also
Exerccio