888565856585

7672 palavras 31 páginas
Árvores AVL, Multidirecionais, B e B+*

2.1 Árvores Balanceadas (AVL)

Definições:

Altura (profundidade) de uma árvore: nível máximo das folhas da árvore
Por conveniência, a altura de uma árvore vazia é definida como sendo –1
Árvore binária perfeitamente balanceada: os números de nós de quaisquer duas sub-árvores de um nó nunca diferem em mais de 1
Árvore binária balanceada AVL: árvore binária na qual as alturas de quaisquer duas sub-árvores nunca diferem em mais de 1
AVL: homenagem a Adelson-Velskii e Landis que demonstraram várias propriedades interessantes dessas árvores
Note que toda árvore perfeitamente balanceada também é uma árvore AVL, mas a recíproca não é verdadeira; i.e., a árvore perfeitamente balanceada tem critério de balanceamento mais rígido do que árvores AVL
Exemplo: a árvore binária a seguir é AVL, mas não é perfeitamente balanceada:

Balanceamento de um nó: a altura de sua sub-árvore esquerda menos a altura de sua sub-árvore direita
Conclusão: cada nó de uma árvore AVL tem balanceamento -1, 0 ou 1, conforme sua sub-árvore esquerda tem altura menor, igual ou maior do que a altura de sua sub-árvore direita

Exemplo: a figura a seguir representa uma árvore AVL (o número no interior de cada nó é o balanceamento do nó)

Se todas as chaves tiverem a mesma probabilidade de serem pesquisadas, a busca numa árvore binária balanceada será mais eficiente do que numa árvore binária não-balanceada
Conforme foi visto, o grau de balanceamento depende da ordem na qual a chave é inserida na árvore
A função que faz busca e inserção apresentada na seção anterior, quanto aplicada a uma árvore balanceada, não garante que a árvore permanecerá balanceada
Restabelecer o balanceamento de uma árvore perfeitamente balanceada após inserção ou remoção de um nó não é trivial, mas, no caso de árvores AVL, essa tarefa é relativamente fácil

A figura a seguir ilustra todas as inserções possíveis que podem ser

Relacionados