rvores Balanceadas
Prof. Csar Angonese
rvores Balanceadas
Aspecto importante em arvores , naturalmente, o custo deacesso a uma chave desejada.As rvores binrias que foram estudadas at o presente momentoquando implementadas oferecem um baixo custo de acesso, mascom um certo nmero de inseres e remoes este custo ficaelevado.Para manter este custo ao longo da utilizao, a estrutura deveser alterada periodicamente de forma a moldar os novos dados,esta estrutura denominada de Balanceada.
rvores Completas
So aquelas que minimizam o nmero de comparaes efetuadas no pior caso para uma busca com chaves de probabilidades de ocorrncia idnticas.
Exemplo ruim p/restabelecimento de rvores completas
Possibilidade de incluso sem aumento de altura
Existe somente uma possibilidade:- Incluso de uma chave maior que todas as demais
Se ao contrrio for includo um n de chave menor do que todas as outras;
- Deixaria de ser completa
Incluso do n com chave O (Zero)
Transformar em rvore completa
Para transformar esta ltima em uma rvore completa:- Necessrio alterar a posio na estrutura de todos os seus
ns;
- O custo para restabelecer a estrutura excessivo
rvores AVL
Uma rvore binria denominada AVL quando para qualquer n asalturas de suas duas subrvores, esquerda e direita, diferem emmdulo de at uma unidade.
uma rvore AVL No uma rvore AVL
rvore AVL
rvores de altura balanceada ou de alturaequilibrada foram introduzidas em 1962 porAdelson-Velskii e Landis, tambm conhecidascomo rvores AVL A definio de uma rvore binria de alturaequilibrada (AVL) requer que cada subrvoreseja tambm de altura equilibrada
Incluso em rvore AVL
Uma rvore na qual sero efetuadas incluses de ns. Para que se mantenha uma rvore AVL aps as incluses necessrio efetuar operaes de restabelecimento de regulagem de seus ns, quando necessrio.
A ideia consiste em verificar, aps cada incluso, se algum n p seencontra desregulado, isto , se a diferena de altura entre as duassub-rvores de p tornou-se maior do que um. Em caso positivo,aplicar transformaes apropriadas para regul-lo.
rvores Balanceadas
Suponha que o n q foi includo em T. Se aps a incluso todos os nsse mantiveram regulados, ento a rvore manteve-se AVL e no hnada a efetuar. Caso contrario, seja p o n mais prximo s folhas deT 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 podeaumentar em mais de uma unidade de altura de qualquer sub-rvore.
Fator de Balanceamento
O fator de balanceamento ou fator deequilbrio de um n T em uma rvore binria definido como sendo hL hR onde hL e hRso as alturas das subrvores esquerda edireita 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
Possveis rotaes em uma rvore desbalanceada
Diferena deAltura de um n
Diferena de altura do nFilho do n desbalanceado
Tipo de rotao
21 Simples direita0 Simples direita-1 Dupla com filho para a
esquerda e paiPara a direita
-21 Dupla com filho para a
direita e pai para a esquerda
0 Simples esquerda-1 Simples esquerda
Tipos de rotaes em rvores
Tipos de rotaes em rvores
Tipos de rotaes em rvores
Tipos de rotaes em rvores
Fator de Balanceamento
Fator de Balanceamento
Remoo em rvore AVL
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 aincluso: Para isso basta determinar as alturas de suas duas sub-rvores e
subtrair uma da outra.
Balano(v) = hd(v) He(v)
Observa-se que v est regulado se e somente se -1
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
Caso 2: balano(v) = 0 antes da incluso Neste caso, balano(v) torna-se -1 e a altura da sub-rvore de raiz
v foi modificada. Consequentemente, os ns restantes do caminhoat a raiz tambm podem ter suas alturas modificadas e devem seranalisados
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
also
If (raiz == NULL)raiz = pt;
If (aux != NULL)if (tipo == E)
aux->esq = pt;else
aux->dir = pt;
,aux, tipo)
also
also
also
erdadeiro
,Aux, tipo)
,aux,tipo)
,pt, E)
,pt, D)
Exerccio Desenhar a rvore AVL conforme ns abaixo: Inserir n 30 Inserir n 50 Inserir n 80 Inserir n 20 Inserir n 10 Inserir n 25 Inserir n 70 Remoo do n 30 Remoo do n 20 Remoo do n 10 Remoo do n 25 Insero n 75 Remoo n 50
Top Related