Implementação de C ++ de uma árvore AVL, uma árvore de busca binária auto-equilibrada. O código inclui as seguintes funções: Insira, exclua, pesquise e imprima. É totalmente funcional e bem contratado.
Uma árvore AVL é uma árvore de busca binária auto-equilibrada, onde a altura das duas subáridas infantis de cada nó difere no máximo um. Esta implementação fornece métodos eficientes para inserir, excluir, pesquisar e imprimir elementos dentro da árvore.
A função insert permite adicionar um novo valor à árvore AVL, mantendo sua propriedade equilibrada.
// Function
Node * insert (Node *node, int key);
// Example
AVLTree.insert(AVLTree.root, 19 ); A função deleteNode remove um valor da árvore AVL, se existir. Esta operação também garante que a árvore permaneça equilibrada. Se o valor for encontrado e removido, a estrutura da árvore será ajustada de acordo.
// Function
Node * deleteNode (Node *root, int key);
// Example
AVLTree.deleteNode(AVLTree.root, 16 ); A função search encontra um valor na árvore AVL e imprime seu local atual, pai e filhos (se houver). Se o valor estiver na raiz, indicará isso.
// Function
static void search (Node *root, int key);
// Example
Tree::search (AVLTree.root, 32 );
A função printTree gera os elementos da árvore AVL em ordem classificada.
// Function
void printTree (Node *root, int space);
// Example
AVLTree.printTree(AVLTree.root, 0 );