Implémentation C ++ d'un arbre AVL, un arbre de recherche binaire auto-équilibré. Le code comprend les fonctions suivantes: insérer, supprimer, rechercher et imprimer. Il est entièrement fonctionnel et bien commun.
Un arbre AVL est un arbre de recherche binaire auto-équilibré où la hauteur des deux sous-arbres enfants de chaque nœud diffère au plus. Cette implémentation fournit des méthodes efficaces pour insérer, supprimer, rechercher et imprimer des éléments dans l'arbre.
La fonction insert vous permet d'ajouter une nouvelle valeur à l'arborescence AVL tout en maintenant sa propriété équilibrée.
// Function
Node * insert (Node *node, int key);
// Example
AVLTree.insert(AVLTree.root, 19 ); La fonction deleteNode supprime une valeur de l'arbre AVL, s'il existe. Cette opération garantit également que l'arbre reste équilibré. Si la valeur est trouvée et supprimée, la structure de l'arbre est ajustée en conséquence.
// Function
Node * deleteNode (Node *root, int key);
// Example
AVLTree.deleteNode(AVLTree.root, 16 ); La fonction search trouve une valeur dans l'arborescence AVL et imprime son emplacement actuel, son parent et ses enfants (le cas échéant). Si la valeur est à la racine, cela l'indiquera.
// Function
static void search (Node *root, int key);
// Example
Tree::search (AVLTree.root, 32 );
La fonction printTree sortira les éléments de l'arborescence AVL dans l'ordre trié.
// Function
void printTree (Node *root, int space);
// Example
AVLTree.printTree(AVLTree.root, 0 );