Você está na página 1de 33

Aula 12 - Árvores AVL

PROF. MS ALESSANDRO DIAS

Material elaborado pelo PROF. MS. CASSIANO R. N. MORALLES


Árvore AVL - Conceito

● Árvore AVL é uma árvore binária de busca balanceada, ou


seja, uma árvore balanceada (árvore completa) são
as árvores que minimizam o número de comparações
efetuadas no pior caso para uma busca com chaves de
probabilidades de ocorrências idênticas.
Árvore AVL - História

● Esta estrutura foi criada em 1962 pelos soviéticos Adelson


Velsky e Landis que a criaram para que fosse possível
inserir e buscar um elemento em tempo c.log ( n) operações,
onde n é o número de elementos contido na árvore. Tal
estrutura foi a primeira árvore binária balanceada criada
Árvore AVL - Estrutura

● Estrutura de um nodo na árvore AVL

Struct nodoAVL {
info : tipo_info;
esq : *nodoAVL;
dir : *nodoAVL;
alt : int;
};

O campo alt deve ser atualizado recursivamente quando um nodo for


inserido ou deletado.
Árvore AVL

● Manter uma árvore binária de busca balanceada sob a presença de


constantes inserções e deleções é ineficiente.
● Para contornar esse problema foi criada a árvore AVL
(Adelson-Velskiie Landis).
● A árvore AVL é uma árvore binária com uma condição de balanço,
porém não completamente balanceada.
● Árvores AVL permitem inserção/deleção e rebalanceamento
aceitavelmente rápidos.
Árvore AVL

● Fatores de balanceamento dos nós


○ Altura da subárvore direita menos altura da subárvore esquerda
○ Hd –He
○ Atualizados sempre que a árvore é alterada (elemento é inserido ou
removido)
○ Quando um fator é 0, 1 ou -1, a árvore está balanceada
○ Quando um fator se torna 2 ou -2, a árvore está desbalanceada
○ Operações de balanceamento!
Árvore AVL

● Caso encontremos um nodo desbalanceado


(corresponde à Hesq- Hdir < 2 ),
● Realizamos a rotação no primeiro nodo desbalanceado encontrado.
Árvore AVL

● Exercício
○ Inserir os elementos 10, 3, 2, 5, 7 e 6 em uma árvore e
balancear quando necessário.
Árvore AVL
Árvore AVL
Árvore AVL
Árvore AVL
Árvore AVL
Árvore AVL
Árvore AVL
Árvore AVL
Árvore AVL
Árvore AVL
Árvore AVL
Árvore AVL
Árvore AVL
Árvore AVL
Árvore AVL
Árvore AVL
Árvore AVL
Árvore AVL
Árvore AVL
Árvore AVL
Árvore AVL - REMOÇÃO
Árvore AVL - REMOÇÃO
Árvore AVL - REMOÇÃO
Árvore AVL
Árvore AVL

● Exercício
○ Implementar remoção de elementos de uma AVL
(51,2,3,4,5,6,30,45,76)
■ Remover e mostrar os passos de remoção dos números 4 e 30 em
sequência.

Você também pode gostar