AccueilAlgorithmes & IAArbre AVL — Rotations auto-équilibrantes

🌳 Arbre AVL — Rotations auto-équilibrantes

Insérez et supprimez des clés dans un arbre AVL et observez la mise à jour des facteurs d'équilibre après chaque changement. Quand un sous-arbre dépasse ±1, des rotations simples et doubles restaurent automatiquement l'équilibre de hauteur.

Algorithmes & IA2DAvancé60 FPS
avl-tree ↗ Ouvrir en autonome

À propos de Arbre AVL — Rotations auto-équilibrantes

Un arbre AVL, nommé d'après ses inventeurs Georgy Adelson-Velsky et Evgenii Landis qui l'ont publié en 1962, est le plus ancien arbre binaire de recherche auto-équilibré. Chaque nœud stocke un facteur d'équilibre égal à la hauteur de son sous-arbre gauche moins la hauteur de son sous-arbre droit, et l'arbre maintient l'invariant que cette valeur reste dans {−1, 0, 1} à tout moment. Après une insertion ou une suppression, les hauteurs sont recalculées le long du chemin de retour vers la racine, et le premier ancêtre trouvé déséquilibré est corrigé par une rotation simple (déséquilibre gauche-gauche ou droite-droite) ou une rotation double (déséquilibre gauche-droite ou droite-gauche) — chacune étant une réécriture de pointeur en O(1). Cette discipline stricte maintient la hauteur de l'arbre à O(log n) dans le pire des cas, contrairement à un ABR naïf qui peut se dégrader en liste chaînée sur une entrée triée. Comparé aux arbres rouge-noir, les arbres AVL sont plus rigoureusement équilibrés, offrant des recherches plus rapides au prix de rotations plus fréquentes lors de l'insertion et de la suppression, ce qui rend les arbres AVL intéressants lorsque les lectures dépassent largement les écritures.

Questions fréquentes

Pourquoi le facteur d'équilibre doit-il rester dans {−1, 0, 1} ?

Cette plage est le seuil précis qui garantit une hauteur de l'arbre en O(log n) de manière prouvée. Adelson-Velsky et Landis ont démontré qu'un arbre respectant cet invariant a une hauteur d'au plus environ 1,44·log₂(n+2), donc autoriser des facteurs d'équilibre de ±1 offre assez de flexibilité pour une insertion efficace tout en garantissant une hauteur logarithmique.

Quelle est la différence entre une rotation simple et une rotation double ?

Une rotation simple (cas LL ou RR) corrige un déséquilibre causé par un sous-arbre lourd du même côté que son propre enfant lourd — une seule réécriture de pointeur suffit. Une rotation double (cas LR ou RL) traite un déséquilibre « en zigzag » où l'enfant lourd penche du côté opposé, nécessitant deux rotations : d'abord sur l'enfant pour le convertir en cas de rotation simple, puis sur le nœud lui-même.

Comment un arbre AVL se compare-t-il à un arbre rouge-noir ?

Les deux garantissent une hauteur en O(log n), mais les arbres AVL imposent un invariant d'équilibre plus strict, offrant des arbres plus courts et une recherche plus rapide. Les arbres rouge-noir assouplissent la contrainte d'équilibre (autorisant le chemin racine-feuille le plus long à être jusqu'à deux fois le plus court), ce qui signifie moins de rotations lors de l'insertion et de la suppression. Cela rend les arbres AVL avantageux pour les charges de travail à forte lecture et les arbres rouge-noir avantageux pour les charges de travail à forte écriture.

Pourquoi la suppression peut-elle nécessiter des rotations à chaque niveau jusqu'à la racine, contrairement à l'insertion ?

Une insertion n'ajoute de la hauteur qu'à un seul sous-arbre, donc au plus une rotation (simple ou double) est jamais nécessaire pour restaurer l'équilibre, après quoi la hauteur globale du sous-arbre est ramenée à sa valeur d'avant insertion. Une suppression peut réduire la hauteur d'un sous-arbre, et cette réduction peut se propager vers le haut, déclenchant potentiellement une rotation de rééquilibrage à chaque ancêtre sur le chemin vers la racine — jusqu'à O(log n) rotations dans le pire des cas.

⚙ Sous le capot

Insérez et supprimez des clés dans un arbre AVL et observez la mise à jour des facteurs d'équilibre après chaque changement. Quand un sous-arbre dépasse ±1, des rotations simples et doubles restaurent automatiquement l'équilibre de hauteur.

structures de donnéesarbresalgorithmeséquilibrageinformatique

2D · HTML5 Canvas 2D · 60 FPS cible · fonctionne entièrement côté client, sans installation

Qu'avez-vous trouvé ?

Ajouter des étapes de reproduction (facultatif)