• Aucun résultat trouvé

Corrigé en bref arbres AVL

N/A
N/A
Protected

Academic year: 2022

Partager "Corrigé en bref arbres AVL"

Copied!
1
0
0

Texte intégral

(1)

Corrigé en bref arbres AVL

Rappels de cours :

Si B est un arbre AVL et si on ajoute ou supprime un sommet à B, alors - si cela ne provoque aucun déséquilibre, on a toujours un arbre AVL.

- sinon soit x le sommet le plus bas déséquilibré (i.e. de déséquilibre 2 ou -2):

- si x a un déséquilibre de 2 et est tel que son fils gauche

- a un déséquilibre de 1, alors une rotation rd(x,B) permet de rééquilibrer l'arbre - a un déséquilibre de -1, alors une rotation rgd(x,B) permet de rééquilibrer l'arbre - si x a un déséquilibre de -2 et est tel que son fils droit

- a un déséquilibre de -1, alors une rotation rg(x,B) permet de rééquilibrer l'arbre

- a un déséquilibre de 1, alors une rotation rdg(x,B) permet de rééquilibrer l'arbre - pas d'autres cas possible.

rd (rg) = rotation droite (gauche); rdg (rgd)= rotation droite gauche (gauche droite).

Rotation droite

Rotation gauche

Rotation gauche droite

(2)

Rotation droite gauche

A. Les AVL sont d’abord des arbres de recherche, ils sont donc tels que tout nœud a une clé supérieure à celles des nœuds de son sous arbre gauche et inférieure à celles des nœuds de son sous arbre droit. De plus ils sont H-équilibrés : en tout nœud, la différence de hauteur entre les sous arbres gauche et droit est au plus égal à 1.

B. L’adjonction est d’abord une adjonction comme feuille dans l’arbre binaire de recherche.

Ensuite, il faut remonter le chemin depuis cette feuille jusqu’à la racine pour corriger les déséquilibres. On ajoute 1 si on remonte depuis la gauche et on retranche 1 si on remonte depuis la droite. Si l’un d’eux devient ±2, on pratique une rotation «!ad hoc!». On arrête la remontée si le déséquilibre est nul, puisque cela implique que la hauteur de ce sous arbre n'a

pas changée.

C. Il est essentiel de maintenir en permanence les déséquilibres des nœuds de l’arbre au fur et à mesure des adjonctions. Si on ne le fait pas, on risque de ne pas faire les corrections aux bons endroits. L’adjonction de 35 implique une rdg en 25. Celle de 5 implique une rd en 25. Celle de 20 une rgd en 35. Celle de 65 une rg en 35. Celle de 40 une rdg en 35. Celle de 50 une rdg en 25.

Celle de 55 une rg en 45.

D. Comme cela a été vu pour l’exercice sur les arbres binaires de recherche, la liste infixée d’un AVL est une liste ordonnée. N’oublions pas qu’un AVL est d’abord un arbre binaire de recherche.

E. La suppression d’un nœud est d’abord une suppression dans un arbre binaire de recherche:

localisation du nœud, s’il a deux fils remplacement de la valeur par celle qui est à l’extrémité du

(3)

bord gauche du sous arbre droit et le nœud à supprimer est alors ce nœud extrémité, et enfin suppression du nœud (initial ou extrémité) qui a au plus un fils en mettant le sous arbre restant à sa place. Ensuite, on remonte le chemin depuis le nœud supprimé jusqu’à la racine en corrigeant les déséquilibres. On retranche 1 si on remonte depuis la gauche et on ajoute 1 si on remonte depuis la droite. Si l'un d'eux devient ±2, on pratique une rotation "ad hoc". On arrête la remontée si le déséquilibre est différent de 0, puisque cela implique que la hauteur de ce sous arbre n'a pas changée. Notons qu’il peut y avoir plusieurs rotations à effectuer.

F. La suppression de 45 conduit à un déséquilibre –2 sur 50, et donc une rdg sur ce nœud. Cette rotation conduisant à diminuer la hauteur de l’arbre correspondant (le déséquilibre est nul), il faut poursuivre les corrections au delà, ce qui conduit à un déséquilibre +2 sur 40, et donc une rgd sur ce nœud.

G. La suppression de 30 conduit à son remplacement par 35, et la suppression du nœud où était 35. Le déséquilibre de 40 devient –2, nécessitant une rg en 40.

Références

Documents relatifs

On veut créer un vérificateur orthographique utilisant un dictionnaire implémenté dans un arbre binaire : chaque nœud contient un mot, tous les nœuds atteints par son fils gauche

Les arbres binaires ordonnés sont des arbres binaires (ayant un SAG et un SAD) tels que pour chaque nœud, les clés (identificateurs) des éléments du sous-arbre gauche sont

Un ABR, Arbre Binaire de Recherche (anglais : BST, Binary Search Tree) est arbre binaire dans lequel chaque nœud est porteur d’une valeur de clef unique, et donc les clefs des

Pour un arbre binaire de recherche contenant des entiers, nous considérerons que les valeurs des noeuds des sous arbres gauche sont inférieur à la racine de ce noeud et les

Il s’agit d’un arbre dont les étiquettes sont des entiers, avec la propriété suivante : si un nœud N a pour étiquette k, alors toutes les étiquettes apparaissant dans le

Ces deux quantités sont liées respectivement au coût de la recherche avec succès et sans succès d'un nœud dans un arbre binaire.. Le cheminement interne divisé par n (le nombre

Comme un DST est basé sur des arbres couvrants (un par nœud), chaque départ d’une requête de recherche part d’un nœud, racine de son arbre couvrant, et consomme au plus 2.n

Exercice 4 (Entropie dans les arbres) Un arbre probabiliste est un arbre fini d’arité D dont les nœuds internes et les feuilles sont étiquettés par des probabilités, telles que..