As árvores AVL são um tipo especial de árvore binária de busca que mantém o equilíbrio entre seus nós automaticamente. Criadas por Georgy Adelson-Velsky e Evgenii Landis em 1962, elas garantem que a diferença de altura entre as subárvores esquerda e direita de qualquer nó nunca ultrapasse 1.
⚙️ Fator de Balanceamento
Cada nó possui um fator de balanceamento, calculado como a diferença entre as alturas das subárvores direita e esquerda. Os valores possíveis são -1, 0 ou +1. Quando o fator ultrapassa esses limites (±2), a árvore realiza uma rotação para restaurar o equilíbrio.
🔁 Tipos de Rotações
- Rotação simples à esquerda (RR): usada quando o nó tem fator
+2e o filho direito possui fator positivo. - Rotação simples à direita (LL): usada quando o nó tem fator
-2e o filho esquerdo possui fator negativo. - Rotação dupla à esquerda (LR): ocorre quando o nó está desbalanceado à direita, mas o filho direito está inclinado à esquerda.
- Rotação dupla à direita (RL): usada quando o nó está desbalanceado à esquerda, mas o filho esquerdo está inclinado à direita.
📥 Inserção e Remoção
A inserção em uma árvore AVL segue o mesmo processo de uma árvore binária comum, com o acréscimo da verificação de balanceamento. Após a inserção ou remoção, percorremos a árvore “de baixo para cima” ajustando os fatores e aplicando rotações quando necessário.
Na remoção, é comum que mais de uma rotação seja necessária para reequilibrar a estrutura, especialmente em árvores profundas.
📊 Vantagens das Árvores AVL
- Busca, inserção e remoção com complexidade
O(log n). - Maior desempenho em grandes volumes de dados.
- Menor altura média em comparação a árvores binárias não balanceadas.
💡 Conclusão
As árvores AVL são fundamentais para quem estuda estruturas de dados e deseja compreender como manter o desempenho ideal em operações de busca e atualização. Entender o funcionamento das rotações é essencial para provas e entrevistas técnicas de programação e concursos de TI.