Vous êtes sur la page 1sur 17

THEME :

ARBRES BINAIRES DE
RECHERCHE

Membres : Professeur :
 MEMEL Akpa Joel  M. OUATTARA Soma
 OUEDRAOGO Ismael
 OURA Max-Joel
 ROUDO Yves
 ZOUGOURI Elsa

ANNEE ACADEMIQUE 2021-2022


Table des matières

I. QU’EST-CE QU’UN ARBRE BINAIRE DE RECHERCHE ? ......................................... 1


II. REQUÊTE DANS UN ARBRE BINAIRE DE RECHERCHE .......................................... 1
1. Recherche .............................................................................................................. 1
2. Minimum et maximum ........................................................................................... 2
3. Les prédécesseurs et successeurs dans un arbre binaire de recherche : ....... 3
a) Les prédécesseurs .............................................................................................. 3
b) Les successeurs .................................................................................................. 4
III. INSERTION ET SUPPRESSION ................................................................................. 5
1. Insertion d’un élément dans un ABR ............................................................................ 5
2. Suppression d’un élément dans un ABR ....................................................................... 6
IV. ARBRE AVL............................................................................................................... 9
1. Définition ............................................................................................................... 9
2. Facteur D’équilibrage (Fe) .................................................................................... 9
3. Rotations ..............................................................................................................10
a. Rotation simple à droite ......................................................................................10
b. Rotation simple à gauche ...................................................................................11
c. Rotation double...................................................................................................11
Exercice d’application ...................................................................................................13

ANNEE ACADEMIQUE 2021-2022


I. QU’EST-CE QU’UN ARBRE BINAIRE DE RECHERCHE ?
Un arbre binaire de recherche (ABR) est un arbre binaire dont les enfants
sont agencés de la manière suivante :
 Les enfants à gauche d’un nœud ont des valeurs (on parlera aussi
de clés) inférieures ou égales à celle du nœud ;
 Les enfants à droite d’un nœud ont des valeurs (on parlera aussi de
clés) strictement supérieures à celle du nœud.

II. REQUÊTE DANS UN ARBRE BINAIRE DE RECHERCHE

1. Recherche
La recherche d’une valeur dans un ABR consiste, en partant de la racine, à parcourir une
branche en descendant chaque fois sur le fils gauche ou sur le fils droit selon que la clé
portée par le nœud est plus grande ou plus petite que la valeur cherchée. La recherche
s’arrête d`es que la valeur est rencontrée ou que l’on a atteint l’extrémité d’une branche (le
fils sur lequel il aurait fallu descendre n’existe pas).

1
 Algorithme de recherche
Recherche d’une valeur k à partir d’un nœud x d’un ABR :

2. Minimum et maximum
Pour accéder à la clé la plus petite (resp. la plus grande) dans un ABR, il suffit de
descendre sur le fils gauche (resp. Le fils droit) autant que possible. Le dernier nœud
visité qui n’a pas de fils gauche (resp. Fils droit), porte la valeur la plus petite (resp. la
plus grande) de l’arbre.

 Algorithme Minimum
Recherche du minimum à partir d’un nœud x d’un ABR :

 Algorithme Maximum
Par symétrie :

2
3. Les prédécesseurs et successeurs dans un arbre binaire de
recherche :

a) Les prédécesseurs

Dans un arbre binaire de recherche dont toutes les clés des nœuds sont distinctes, le
prédécesseur d’un nœud est le nœud ayant la plus grande clé inférieure à celle de ce
nœud.
Dans le cas où le nœud x a un enfant de gauche, on sait que les nœuds appartenant
au sous arbre de racine gauche[x] ont tous une clé inférieure à celle du nœud x. Par
conséquent, le prédécesseur du nœud x est le maximum de ce sous arbre.
Dans le cas où le nœud x n’a pas d’enfant de gauche, on va initialiser une variable y
à père[x] et tant que y sera différent de nil et que x sera l’enfant de gauche de y, on
affectera y à x puis père[x] à y. Lorsqu’on sortira de cette boucle, la valeur de y sera
le prédécesseur de x ou Nil si ce dernier n’en a pas.
Exemples :

Dans cet arbre binaire de recherche, on a :

Le prédécesseur du nœud de clé 8 est celui de clé 7.


Le prédécesseur du nœud de clé 3 et le nœud de clé 1.
Le nœud de clé 1 n’a pas de prédécesseur.
Le prédécesseur du nœud de clé 13 et le nœud de clé 10.

3
Pseudo – code :

b) Les successeurs

Dans un arbre binaire de recherche dont toutes les clés des nœuds sont distinctes, le
successeur d’un nœud est le nœud ayant la plus petite clé supérieure à celle de ce
nœud.
Dans le cas où le nœud x a un enfant de droite, on sait que les nœuds appartenant au
sous arbre de racine droite[x] ont tous une clé supérieure à celle du nœud x. Par
conséquent, le successeur du nœud x est le maximum de ce sous arbre.
Dans le cas où le nœud x n’a pas d’enfant de droite, on va initialiser une variable y à
père[x] et tant que y sera différent de nil et que x sera l’enfant de droite de y, on
affectera y à x puis père[x] à y. Lorsqu’on sortira de cette boucle, la valeur de y sera
le successeur de x ou Nil si ce dernier n’en a pas
Exemples :

Dans cet arbre binaire de recherche, on a :

4
Le successeur du nœud de clé 15 est celui de clé 17.
Le successeur du nœud de clé 12 est celui de clé 13.
Le nœud de clé 21 n’a pas de prédécesseur.
Le successeur du nœud de clé 14 est celui de clé 15.
Pseudo – code :

III. INSERTION ET SUPPRESSION

1. Insertion d’un élément dans un ABR


L’´élément à ajouter est inséré là où on l’aurait trouvé s’il avait été présent dans
l’arbre. L’algorithme d’insertion recherche donc l’´élément dans l’arbre et, quand il
aboutit à la conclusion que l’élément n’appartient pas à l’arbre (l’algorithme aboutit
sur Nil), il insère l’élément comme fils du dernier nœud visité.

5
Exemple :

2. Suppression d’un élément dans un ABR


L’opération de suppression dépend du nombre de fils du nœud à supprimer dans l’ABR.
Les différents cas de figure possibles sont les suivants :

 Cas d’une feuille


 Cas d’un unique fils
 Cas de deux fils

6
 Cas d’une feuille
Le nœud à supprimer n’a pas de fils : on l’élimine simplement de l’arbre en
modifiant le lien de son père. Si le père n’existe pas, l’arbre devient l’arbre vide.

7
 Cas d’un unique fils
Le nœud à supprimer a un unique fils : on détache le nœud et on relie directement
son père et son fils. Si ce père n’existe pas, l’arbre est réduit au fils unique du nœud
supprimé.

 Cas de deux fils


Le nœud à supprimer à deux fils : on le remplace par son prédécesseur q qui, dans
ce cas, est toujours le maximum de son sous-arbre gauche (on peut prendre
indifféremment son successeur qui est alors le minimum de son sous-arbre droit).
Puisque le nœud q a la valeur la plus grande dans le fils gauche, il n’a donc pas de
fils droit, et peut être décroché comme on l’a fait dans les cas 1 et 2.

8
IV. ARBRE AVL
1. Définition
En informatique théorique, les arbres AVL ont été historiquement les
premiers arbres binaires de recherche automatiquement équilibrés. Dans
un arbre AVL, les hauteurs des deux sous-arbres d'un même nœud
diffèrent au plus de 1 . La recherche, l'insertion et la suppression sont
toutes en dans le pire des cas. L'insertion et la suppression
nécessitent d'effectuer des rotations.
La dénomination « arbre AVL » provient des noms respectifs de ses deux
inventeurs, respectivement Georgii Adelson-Velsky (en) et Evguenii
Landis (en), qui l'ont publié en 1962 sous le titre An Algorithm for the
Organization of Information1.
Le facteur d'équilibrage d'un nœud est la différence entre la hauteur de
son sous-arbre droit et celle de son sous-arbre gauche. Un nœud dont le
facteur d'équilibrage est 1, 0, ou -1 est considéré comme équilibré. Un
nœud avec tout autre facteur est considéré comme déséquilibré et requiert
un rééquilibrage. Le facteur d'équilibrage est soit calculé à partir des
hauteurs respectives des sous-arbres, soit stocké dans chaque nœud de
l'arbre (ce qui permet un gain de place, ce facteur pouvant être stocké sur
deux bits, mais complexifie les opérations d'insertion et de suppression).

2. Facteur D’équilibrage (Fe)

Facteur d'équilibrage d'un nœud est la différence entre la hauteur de son


sous-arbre droit et celle de son sous-arbre gauche.

9
Fe(n) = (hauteur du sous arbre droit) – (hauteur du sous arbre
gauche).
Un arbre est équilibré si tout nœud n, Fe(n) = -1, 0 ou +1.
Pour rééquilibrer un nœud, on exploite les rotations.

3. Rotations
Il existe deux types de rotation qui sont :
 Rotation simple
 Rotation doubles
Il existe également deux directions de rotation qui sont :
 Rotation à droite
 Rotation à gauche
Enfin il existe des propriétés des rotation qui sont :
 0(1) : temps d’exécution constant
 Maintient l’ordre des nœuds (important pour les arbres binaires de
recherche)

a. Rotation simple à droite

Supposons que les nœuds sans cercle représentent des sous arbres.

10
b. Rotation simple à gauche

Supposons que les nœuds sans cercle représentent des sous arbres.

c. Rotation double

11
Parfois une rotation simple ne suffit pas, par exemple :

Alors pourquoi cela ne fonction pas ?


 Le facteur d’équilibre du sous arbre (Fe(c) = -1) n’est pas de même
signe que celui de la racine (Fe(c) = +2)
Et donc pour remédier à cela avant la rotation simple à gauche sur a, il
faut faire une rotation simple à droite sur C (i.e. le sous arbre droit). On
appelle cela : la rotation double droite gauche ou la rotation double gauche
droite. On aura donc les solutions suivantes :

12
Pour l’algorithme requis pour les rotations doubles , on applique tout
simplement ceux des rotations simple à deux reprises , alors on aura
donc :

Exercice d’application

Résolution de l’exercice
1-Identifiez à coté de chaque nœud de l’arbre sa valeur Fe.

13
2- Cet arbre est-il équilibré ou pas ?
NON cet arbre n’est pas équilibré
3- Si l’arbre n’est pas équilibré :
3-1- Identifiez les nœuds requérant un équilibrage et les rotations requises

3-2- Dessinez l’arbre rééquilibré

14
15

Vous aimerez peut-être aussi