Buscar

8 arvore avl

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 3 páginas

Prévia do material em texto

Estrutura de Dados
Árvore AVL
Manoel Vilela
<2017-10-19 Thu 23:37>
Sumário
1 Descrição 1
2 Origem e Motivação 1
3 Fator de Balanceamento 1
4 Regras 2
4.1 Rebalanceamento . . . . . . . . . . . . . . . . . . . . . . . . . 2
4.2 Inserção . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
4.3 Remoção . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1 Descrição
Esta nota se refere aos procedimentos necessário para balanceamento que
são envolvidos numa árvore do tipo AVL.
2 Origem e Motivação
A árvore AVL foi criada pelos matemáticos russos Adelson Velsky e Lan-
dis na antiga união soviética em 1962 para que fosse possível inserir e buscar
um elemento em tempo de log(n) operações. Onde n é o número de nós.
Sua complexidade é então de fatoO(log(n) para ambas operações e possuí
espaço de O(n), considerando ambos pior e médio caso.
Para controlar o desbalanceamento da árvore com remoções e inserção,
ambos algoritmos que fazem essas operações consideram o fator de balan-
ceamento.
1
3 Fator de Balanceamento
O fator de balanceamento é o critério adotado nas operações de inserção
e remoção para mexer parar realizar uma operação de balanceamento ou não
na árvore. Isto é, ele que caracteriza se a árvore está ou não balanceada, ou
necessariamente, se uma subárvore está desbalanceada.
O critério é definido da seguinte maneira:
Se a árvore é balanceada, todo nó terá fator de balanceamento 1, 0 ou
-1.
O fator de balanceamento é definido pela equação:
FB(T ) = H(left(T ))−H(right(T ))
Onde T é uma árvore, left e right selecionam os filhos e H é a função que
calcula a altura.
4 Regras
A principal regra definida para esse tipo de estrutura de dados está no
procedimento de rebalanceamento que é executado após as operações de in-
serção e remoção. Os critérios usados para balanceamento envolve as alturas
dos nós através do Fator de Balanceamento (FB) que pode ter no máximo
valor de módulo 1. As operações para rebalanceamento envolve rotações em
torno de um nó específico.
4.1 Rebalanceamento
Há dois casos para um nó qualquer:
1. Quando para um nó |FB| = 2 e seu filho |FB| = 1 mas ambos tem
sinais trocados
2. Quando para um nó |FB| = 2 e seu filho |FB| = 1 mas ambos tem
sinais iguais.
Para (1) efetua-se uma dupla rotação em torno do nó com |FB| = 2.
Primeiro o filho, depois o pai. A direção da rotação é inversa ao sinal, isto é,
se é negativo, é para direita se é positivo é para esquerda. A segunda rotação
feita no nó filho e a direção é inversa a primeira. Para (2) efetua-se apenas
uma simples rotação de acordo com o sinal de FB.
2
1 # Rotação Simples a Esquerda
2 # p aponta para o nó desbalanceado
3 q = right(p)
4 hold = left(q)
5 left(q) = p
6 right(p) = hold
7 p = q
Código 1: Pseudo-código para rotação simples a esquerda
1 # Rotação Simples a Direita
2 # p aponta para o nó desbalanceado
3 q = left(p)
4 hold = right(q)
5 right(q) = p
6 left(p) = hold
7 p = q
Código 2: Pseudo código para rotação simples a direita.
4.2 Inserção
A Árvore AVL é também uma Árvore Binária de Busca, portanto, os
critérios de onde inserir um novo nó permanece o mesmo. Insere-se a direita
se o nó a ser inserido é maior que o nó atual, insere-se a esquerda se é menor
que o nó atual.
De tal maneira, ao percorrer de maneira infixa (ou simétrica) você terá
um vetor ordenado de forma crescente.
Ao final da inserção, é necessário verificar se houve desbalanceamento da
árvore através dos critérios que envolve o cálculo do Fator de Balanceamento.
As regras usadas estão definidas no tópico anterior.
4.3 Remoção
As regras de remoção são no geral idênticas as descritas acima para in-
serção, com a adição das propriedades usada em Árvore Binária de Busca
para remoção também.
3
	Descrição
	Origem e Motivação
	Fator de Balanceamento
	Regras
	Rebalanceamento
	Inserção
	Remoção

Continue navegando

Outros materiais