Esse projeto visa a implementação de uma árvore AVL, para a disciplina de Estrutura de Dados Avançada. Neste projeto, está presente as funções de adição e remoção de nós, bem como a função de calcular as alturas de um determinado nó, além da função de checar se é uma AVL. Todas as funções citadas estarão no tree.h.
preOrdem: Imprime os nós da árvore em pré-ordem.
height: Calcula a altura de um nó da árvore.
checkAVL: Checa se a árvore é AVL, com base nos bal, se for maior que 1 ou menor que -1 não é uma AVL.
countNodes: Conta a quantidade de nós em in-ordem.
rotationADD1: Rotação simples e duplas para a esquerda, necéssaria quando a árvore está desbalanceada ao adicionar.
rotationADD2: Rotação simples e duplas para a direita, necéssaria quando a árvore está desbalanceada ao adicionar.
insertAVL: Insere um nó na AVL e faz as rotações nécessarias para mante-la balanceada.
rotationRemove1: Rotação simples e duplas para a esquerda, necéssaria quando a árvore está desbalanceada ao remover.
rotationRemove2: Rotação simples e duplas para a direita, necéssaria quando a árvore está desbalanceada ao adicionar.
balance: Calcula o bal de um nó da árvore.
switchNodes: Troca o pai e os filhos dos nós passados como parâmetro.
removeAVL: Remove um nó da AVL e faz as rotações nécessarias para mante-la balanceada.
freeAVL: Limpa a árvore da memória.
Linguagem C
Mateus Daniel de Lima da Silva