Implementación de C ++ de un árbol AVL, un árbol de búsqueda binario de equilibrio. El código incluye las siguientes funciones: insertar, eliminar, buscar e imprimir. Es completamente funcional y bien comentado.
Un árbol AVL es un árbol de búsqueda binario de equilibrio a sí mismo donde la altura de los dos subtreres de niños de cada nodo difiere en el máximo uno. Esta implementación proporciona métodos eficientes para insertar, eliminar, buscar e imprimir elementos dentro del árbol.
La función insert le permite agregar un nuevo valor al árbol AVL mientras mantiene su propiedad equilibrada.
// Function
Node * insert (Node *node, int key);
// Example
AVLTree.insert(AVLTree.root, 19 ); La función deleteNode elimina un valor del árbol AVL, si existe. Esta operación también garantiza que el árbol permanezca equilibrado. Si el valor se encuentra y elimina, la estructura del árbol se ajusta en consecuencia.
// Function
Node * deleteNode (Node *root, int key);
// Example
AVLTree.deleteNode(AVLTree.root, 16 ); La función search encuentra un valor en el árbol AVL e imprime su ubicación actual, padre e hijos (si corresponde). Si el valor está en la raíz, lo indicará.
// Function
static void search (Node *root, int key);
// Example
Tree::search (AVLTree.root, 32 );
La función printTree genera los elementos del árbol AVL en orden ordenado.
// Function
void printTree (Node *root, int space);
// Example
AVLTree.printTree(AVLTree.root, 0 );