Vous êtes sur la page 1sur 81

1 de 1

Algorithmique

Les arbres
Florent Hivert
Ml : Florent.Hivert@lri.fr
Page personnelle : http://www.lri.fr/hivert

2 de 1

Algorithmes et structures de donnes

La plupart des bons algorithmes fonctionnent grce une mthode


astucieuse pour organiser les donnes. Nous allons tudier quatre
grandes classes de structures de donnes :
Les structures de donnes squentielles (tableaux) ;
Les structures de donnes linaires (liste chanes) ;
Les arbres ;
Les graphes.

3 de 1

Problme de la recherche

On aimerai avoir une structure de donne o linsertion et la


recherche sont efficace.
Pour les tableaux : insertion en O(n), recherche en O(log(n))
Pour les listes : insertion en O(1), recherche en O(n)

4 de 1

Reprsentations graphiques darbres binaires et vocabulaire


nuds

21

4
15

branches 9
33
11
3

28

25

7
12
15

valeurs

29
une branche droite
une branche gauche
Ici :
arbre, nuds, branches ;
arbre binaire, branches gauches, branches droites ;
valeurs (ou tiquettes) des nuds.

4 de 1

Reprsentations graphiques darbres binaires et vocabulaire


nuds

21

4
15

branches 9
33
11
3

28

25

7
12
15

valeurs

29
une branche droite
une branche gauche
Ici :
arbre, nuds, branches ;
arbre binaire, branches gauches, branches droites ;
valeurs (ou tiquettes) des nuds.

4 de 1

Reprsentations graphiques darbres binaires et vocabulaire


nuds

21

4
15

branches 9
33
11
3

28

25

7
12
15

valeurs

29
une branche droite
une branche gauche
Ici :
arbre, nuds, branches ;
arbre binaire, branches gauches, branches droites ;
valeurs (ou tiquettes) des nuds.

5 de 1

Dfinition rcursive
nud-racine

21

15

28
9
33

25

7
11

7
12

15
29

sous-arbre gauche
arbre vide

sous-arbre droit

Ici :
(nud-)racine, sous-arbre gauche, sous-arbre droit ;
larbre vide, notion rcursive darbre binaire valu (ou
tiquet) ;
notion rcursive de sous-arbre.

5 de 1

Dfinition rcursive
nud-racine

21

15

28
9
33

25

7
11

7
12

15
29

sous-arbre gauche
arbre vide

sous-arbre droit

Ici :
(nud-)racine, sous-arbre gauche, sous-arbre droit ;
larbre vide, notion rcursive darbre binaire valu (ou
tiquet) ;
notion rcursive de sous-arbre.

5 de 1

Dfinition rcursive
nud-racine

21

15

28
9
33

25

7
11

7
12

15
29

sous-arbre gauche
arbre vide

sous-arbre droit

Ici :
(nud-)racine, sous-arbre gauche, sous-arbre droit ;
larbre vide, notion rcursive darbre binaire valu (ou
tiquet) ;
notion rcursive de sous-arbre.

6 de 1

Arbres binaires tendus

21
4

15
a

28

25

33

11
3

e
c

5
7

f
12

l
15

e
29

feuilles

Ici :
feuilles ;
notion rcursive darbre binaire tendu.

l
i

6 de 1

Arbres binaires tendus

21
4

15
a

28

25

33

11
3

e
c

5
7

f
12

l
15

e
29

feuilles

Ici :
feuilles ;
notion rcursive darbre binaire tendu.

l
i

7 de 1

Vocabulaire

h
a
u
t
e
u
r
taille

Ici :
structure darbre binaire ;
dimensions : taille, hauteur ;
quilibre ;
chemin issu de la racine, longueur dun chemin.

7 de 1

Vocabulaire

h
a
u
t
e
u
r
taille

Ici :
structure darbre binaire ;
dimensions : taille, hauteur ;
quilibre ;
chemin issu de la racine, longueur dun chemin.

7 de 1

Vocabulaire

h
a
u
t
e
u
r
taille

Ici :
structure darbre binaire ;
dimensions : taille, hauteur ;
quilibre ;
chemin issu de la racine, longueur dun chemin.

7 de 1

Vocabulaire

h
a
u
t
e
u
r
taille

Ici :
structure darbre binaire ;
dimensions : taille, hauteur ;
quilibre ;
chemin issu de la racine, longueur dun chemin.

8 de 1

Arbre binaire de recherche

22
4

33

12
9
6

25

48

15
11

31
28

30
29
croissance stricte

Ici :
arbre binaire de recherche (ou ordonn) ;
parcours infixe (ou symtrique) ;
recherche, insertion, suppression.

8 de 1

Arbre binaire de recherche

22
4

33

12
9
6

25

48

15
11

31
28

30
29
croissance stricte

Ici :
arbre binaire de recherche (ou ordonn) ;
parcours infixe (ou symtrique) ;
recherche, insertion, suppression.

8 de 1

Arbre binaire de recherche

22
4

33

12
9
6

25

48

15
11

31
28

30
29
croissance stricte

Ici :
arbre binaire de recherche (ou ordonn) ;
parcours infixe (ou symtrique) ;
recherche, insertion, suppression.

9 de 1

Arbre Tournoi
c
r
o
i
s
s
a
n
c
e
l
a
r
g
e

3
5

11
12
21

29

48
15

7
9

25

15
28

Ici :
arbre tournoi ;
minimum, insertion, suppression du minimum.

9 de 1

Arbre Tournoi
c
r
o
i
s
s
a
n
c
e
l
a
r
g
e

3
5

11
12
21

29

48
15

7
9

25

15
28

Ici :
arbre tournoi ;
minimum, insertion, suppression du minimum.

10 de 1

Termes anglo-saxons

binary tree ;
node, branch, value, label, root, subtree, leaf ;
size, height, distance ;
balanced tree ;
path from the root, length of a path ;
infix traversal ;
valued binary tree, label(l)ed binary tree, extended binary tree,
binary search tree, ordered binary tree, tournament tree.

11 de 1

Applications des arbres

Classifications : par questionnaire binaire :


nud = question, feuille = rponse ;
branche gauche tiquete par FAUX, branche droite par VRAI.

Recherche : par arbres binaires de recherche.


Files de priorit : par arbres-tournoi : gestion des tampons
avec priorit.

12 de 1

Spcification formelle
Dfinition (Type abstrait ABin)
Oprations :
Vide : {} ABin
Noeud : ABin ABin ABin
EstVide : ABin Booleen
SAG, SAD : ABin ABin
Prconditions :
SAD(t), SAG(t) dfini seulement si non EstVide(t)
Axiomes :
EstVide(Vide()) = VRAI

EstVide(Noeud(g, d)) = FAUX

SAG(Noeud(g, d)) = g

SAD(Noeud(g, d)) = d

Noeud(SAG(t), SAD(t)) = t

si non EstVide(t).

13 de 1

Voici la liste de tous les arbres jusqu la taille 3 :

13 de 1

Voici la liste de tous les arbres jusqu la taille 3 :

14 de 1

Voici la liste de tous les arbres de taille 4 :

15 de 1

Liste de tous les arbres n Nuds


Algorithme
Entre : un entier positif ou nul n
Sortie : une liste darbres
res <- listeVide()
si n = 0 alors
ajoute(res, arbreVide())
retourner res
pour i de 0 n-1 faire
lg <- ALGO(i); ld <- ALGO(n-1-i)
pour g dans lg faire
pour d dans ld faire
ajoute(res, Noeud(g,d))
retourner res

16 de 1

Nombre de Catalan
Proposition
Le nombre darbres binaires n nuds est appel n-ime nombre
de Catalan not Cn . Les nombre de Catalan vrifient la rcurrence :
C0 = 1

Cn =

n1
X

Ci Cn1i .

i=0

On en dduit
Cn =

(2n)!
.
n!(n + 1)!

Voici les premires valeurs :


C0 = 1, C1 = 1, C2 = 2, C3 = 5, C4 = 14, C5 = 42, c6 = 132 .

17 de 1

taille et hauteur

Dfinition
On dfinit deux fonctions sur les arbres binaires :
Le nombre de noeuds appel Taille :
Taille(Vide) = 0
Taille(Noeud(a0 , a1 )) = 1 + Taille(a0 ) + Taille(a1 )
Le nombre de noeuds du plus long chemin appel Hauteur :
Hauteur(Vide) = 0
Hauteur(Noeud(a0 , a1 )) = 1+max{Hauteur(a0 ), Hauteur(a1 )}

18 de 1

Comparaison taille/hauteur

Proposition
Pour tout arbre binaire de taille n et de hauteur h :
h 6 n 6 2h 1 .

19 de 1

Noeuds

Retenir
Un noeud est dit interne sil a deux fils non vide. Sinon il est dit
externe.
internes

externes

20 de 1

Retenir
Une branche relie un noeuds lun des deux sous-arbres. Une
branche est soit la branche gauche soit la branche droite dun
nud.
Une branche est interne lorsquelle relie deux nuds ; elle est
externe dans le cas contraire.
internes

externes

En consquence de quoi :
un nud interne possde deux branches internes ;
un nud externe possde au moins une branche externe.

21 de 1

Nombre de branches

Proposition
Tout arbre binaire de n nuds possde 2n branches.
Plus prcisment, lorsque n > 1, il possde n 1 branches internes
et n + 1 branches externes.

22 de 1

Retenir
Un chemin de longueur k issu de a est un couple de la forme :
(a, hb1 , b2 , . . . , bk i)
pour lequel il existe t1 , t2 , . . . , tk tels que :
0
selon
en posant t0 = a, tj est le sous-arbre gauche ou droit de aj1
que le bit de direction bj vaut 0 ou 1.

On dit dun tel chemin quil mne de a tk .


Le chemin de longueur nulle (a, hi) mne de a lui-mme.

chemin (a, h0, 1, 0, 0i)

a = t0
t1
t2
t3
t4

0
1

1
0

0
0

Un chemin est interne lorsquil mne un nud ; il est externe sinon.

22 de 1

Retenir
Un chemin de longueur k issu de a est un couple de la forme :
(a, hb1 , b2 , . . . , bk i)
pour lequel il existe t1 , t2 , . . . , tk tels que :
0
selon
en posant t0 = a, tj est le sous-arbre gauche ou droit de aj1
que le bit de direction bj vaut 0 ou 1.

On dit dun tel chemin quil mne de a tk .


Le chemin de longueur nulle (a, hi) mne de a lui-mme.

chemin (a, h0, 1, 0, 0i)

a = t0
t1
t2
t3
t4

0
1

1
0

0
0

Un chemin est interne lorsquil mne un nud ; il est externe sinon.

22 de 1

Retenir
Un chemin de longueur k issu de a est un couple de la forme :
(a, hb1 , b2 , . . . , bk i)
pour lequel il existe t1 , t2 , . . . , tk tels que :
0
selon
en posant t0 = a, tj est le sous-arbre gauche ou droit de aj1
que le bit de direction bj vaut 0 ou 1.

On dit dun tel chemin quil mne de a tk .


Le chemin de longueur nulle (a, hi) mne de a lui-mme.

chemin (a, h0, 1, 0, 0i)

a = t0
t1
t2
t3
t4

0
1

1
0

0
0

Un chemin est interne lorsquil mne un nud ; il est externe sinon.

22 de 1

Retenir
Un chemin de longueur k issu de a est un couple de la forme :
(a, hb1 , b2 , . . . , bk i)
pour lequel il existe t1 , t2 , . . . , tk tels que :
0
selon
en posant t0 = a, tj est le sous-arbre gauche ou droit de aj1
que le bit de direction bj vaut 0 ou 1.

On dit dun tel chemin quil mne de a tk .


Le chemin de longueur nulle (a, hi) mne de a lui-mme.

chemin (a, h0, 1, 0, 0i)

a = t0
t1
t2
t3
t4

0
1

1
0

0
0

Un chemin est interne lorsquil mne un nud ; il est externe sinon.

23 de 1

Proposition
Pour tout nud a0 dun arbre binaire non vide a, il existe un
unique chemin menant de la racine a de larbre au nud a0 .

Proposition
La hauteur dun arbre binaire a est la longueur du plus long chemin
issu de la racine a.

Proposition
Tout arbre binaire de n nuds possde 2n + 1 chemins distincts
issus de sa racine. Parmi ceux-l, n sont internes et n + 1 sont
externes.

24 de 1

Dfinition
Soit (a, hb1 , b2 , . . . , bk i) le chemin menant de a a0 .
Le numro de a0 relativement a, not Numa (a0 ), est
[1b1 b2 . . . bk ]2 , lentier dont lcriture en base 2 est 1 b1 b2 . . . bk .
Autrement dit :
racine : 1 ;
vers la gauche : 2, +0 ;
vers la droite : 2, +1.
1

21

15
8

10
9

20

33 41
3

40

82 83

28 11
21
7
11

25

22 23

42 43

12

13

26

12
52

53
106 15

29
212 213

107

5
14 15

27

24 de 1

Dfinition
Soit (a, hb1 , b2 , . . . , bk i) le chemin menant de a a0 .
Le numro de a0 relativement a, not Numa (a0 ), est
[1b1 b2 . . . bk ]2 , lentier dont lcriture en base 2 est 1 b1 b2 . . . bk .
Autrement dit :
racine : 1 ;
vers la gauche : 2, +0 ;
vers la droite : 2, +1.
1

21

15
8

10
9

20

33 41
3

40

82 83

28 11
21
7
11

25

22 23

42 43

12

13

26

12
52

53
106 15

29
212 213

107

5
14 15

27

24 de 1

Dfinition
Soit (a, hb1 , b2 , . . . , bk i) le chemin menant de a a0 .
Le numro de a0 relativement a, not Numa (a0 ), est
[1b1 b2 . . . bk ]2 , lentier dont lcriture en base 2 est 1 b1 b2 . . . bk .
Autrement dit :
racine : 1 ;
vers la gauche : 2, +0 ;
vers la droite : 2, +1.
1

21

15
8

10
9

20

33 41
3

40

82 83

28 11
21
7
11

25

22 23

42 43

12

13

26

12
52

53
106 15

29
212 213

107

5
14 15

27

25 de 1

Notion de parcours
Retenir
Un parcours est un algorithme qui appelle une fonction,
mthode o procdure sur tous les noeuds (ou les sous arbres)
dun arbre.
Lordre sur les nuds dans lequel la procdure est appele
doit tre fix. Il y a de nombreux choix possibles.
Exemple de fonctions : affichage, liste des valeurs, accumulation. . .

Retenir
Un parcours est dit en profondeur lorsque, systmatiquement, si
larbre nest pas vide, le parcours de lun des deux sous-arbres est
termin avant que ne commence celui de lautre.

25 de 1

Notion de parcours
Retenir
Un parcours est un algorithme qui appelle une fonction,
mthode o procdure sur tous les noeuds (ou les sous arbres)
dun arbre.
Lordre sur les nuds dans lequel la procdure est appele
doit tre fix. Il y a de nombreux choix possibles.
Exemple de fonctions : affichage, liste des valeurs, accumulation. . .

Retenir
Un parcours est dit en profondeur lorsque, systmatiquement, si
larbre nest pas vide, le parcours de lun des deux sous-arbres est
termin avant que ne commence celui de lautre.

25 de 1

Notion de parcours
Retenir
Un parcours est un algorithme qui appelle une fonction,
mthode o procdure sur tous les noeuds (ou les sous arbres)
dun arbre.
Lordre sur les nuds dans lequel la procdure est appele
doit tre fix. Il y a de nombreux choix possibles.
Exemple de fonctions : affichage, liste des valeurs, accumulation. . .

Retenir
Un parcours est dit en profondeur lorsque, systmatiquement, si
larbre nest pas vide, le parcours de lun des deux sous-arbres est
termin avant que ne commence celui de lautre.

26 de 1

Parcours prfixe, infixe, suffixe


Parcours en profondeur de gauche droite (on applique F sur tous
les sous-arbres) :
Prfixe :
application de F la racine,
parcours prfixe du sous-arbre gauche,
3 parcours prfixe du sous-arbre droit.
1
2

Infixe (ou symtrique) :


parcours infixe du sous-arbre gauche,
application de F la racine,
3 parcours infixe du sous-arbre droit.
1
2

Postfixe :
parcours postfixe du sous-arbre gauche,
parcours postfixe du sous-arbre droit,
3 application de F la racine.
1
2

Les parcours droite-gauche se dduisent par symtrie.

26 de 1

Parcours prfixe, infixe, suffixe


Parcours en profondeur de gauche droite (on applique F sur tous
les sous-arbres) :
Prfixe :
application de F la racine,
parcours prfixe du sous-arbre gauche,
3 parcours prfixe du sous-arbre droit.
1
2

Infixe (ou symtrique) :


parcours infixe du sous-arbre gauche,
application de F la racine,
3 parcours infixe du sous-arbre droit.
1
2

Postfixe :
parcours postfixe du sous-arbre gauche,
parcours postfixe du sous-arbre droit,
3 application de F la racine.
1
2

Les parcours droite-gauche se dduisent par symtrie.

27 de 1

Exemple
Pour larbre :

les ordres de traitement des nuds sont, selon les parcours :


1

4
5

prfixe

infixe

suffixe

28 de 1

Parcours en largeur

Retenir
Un parcours est dit en largeur lorsquil procde en croissant selon
les niveaux.
Voici un parcourt en largeur de gauche droite :
1
2

5
7

29 de 1

Algorithme de parcours en largeur


Ide : on remplace la pile dappels par une file dattente dans
lalgorithme de parcours prfixe.

Algorithme
Entre : un arbre binaire a, une procdure f
Effet : appelle f sur tous les sous arbres
p <- FileVide()
p <- Enfile(p, a)
tant que non EstVideFile(p) faire
ssa, p <- Defile(p)
si non EstVide(ssa)
f(ssa)
p <- Enfile(p, SAG(ssa))
p <- Enfile(p, SAD(ssa))

30 de 1

Dfinition (Type abstrait arbre binaire valu ABinV(T ))


Oprations :
Videval : {} ABinV(T )

EstVideval : ABinV(T ) Booleen

Noeudval : T ABinV(T ) ABinV(T ) ABinV(T )


SAGval , SADval : ABinV(T ) ABinV(T )
Val : ABinV(T ) T
Prconditions :
SAD(t), SAG(t), Val(t) dfini seulement si non EstVide(t)
Axiomes :
EstVide(Vide()) = VRAI

EstVide(Noeud(v , g, d)) = FAUX

SAG(Noeud(v , g, d)) = g

SAD(Noeud(v , g, d)) = d

Val(Noeud(v , g, d)) = v
Noeud(Val(t), SAG(t), SAD(t)) = t

si non EstVide(t).

31 de 1

Arbres valus et non valus

Retenir
Les dfinitions de taille, hauteur, chemin, interne, externe et
numro sapplique galement pour les arbres binaires valus.

Dfinition (Forme dune arbre binaire valus)


On dfini rcursivement la forme dun binaire valus par
Forme : ABinV(T ) ABin ;
Forme(Videval ()) = Vide() ;
Forme(Noeudval (v , g, d)) = Noeud(Forme(g), Forme(d)).

32 de 1

Arbres binaires de recherche


Dfinition
Un arbre binaire de recherche (ABR ; ou arbre binaire ordonn,
ABO) est un ABV qui, sil nest pas vide, est tel que :
ses sous-arbres gauche et droit sont des ABR ;
les valeurs des nuds du sous-arbre gauche sont strictement
infrieures la valeur du nud-racine de larbre ;
les valeurs des nuds du sous-arbre droit sont strictement
suprieures la valeur du nud-racine de larbre.

Les valeurs des nuds dans un ABR sont donc deux deux
distinctes. Autrement dit, la qualitificatif ordonn est prendre
au sens strict.

32 de 1

Arbres binaires de recherche


Dfinition
Un arbre binaire de recherche (ABR ; ou arbre binaire ordonn,
ABO) est un ABV qui, sil nest pas vide, est tel que :
ses sous-arbres gauche et droit sont des ABR ;
les valeurs des nuds du sous-arbre gauche sont strictement
infrieures la valeur du nud-racine de larbre ;
les valeurs des nuds du sous-arbre droit sont strictement
suprieures la valeur du nud-racine de larbre.

Les valeurs des nuds dans un ABR sont donc deux deux
distinctes. Autrement dit, la qualitificatif ordonn est prendre
au sens strict.

33 de 1

Exemple darbre binaire de recherche

22
4

33

12
9
6

25

48

15
11

31
28

30
29
croissance stricte

34 de 1

ABR et ordre infixe

Thorme (caractrisation rapide des ABR)


Un ABV est un ABR si seulement si la liste des valeurs des nuds
tablie dans lordre infixe est strictement croissante.

Exemple
Avec
T = Naturel,
lABV :

4
2

20
12
7

est un ABR. La liste des


valeurs de ses nuds,
tablie dans lordre
infixe, est strictement
croissante :
h2, 4, 7, 12, 20i.

34 de 1

ABR et ordre infixe

Thorme (caractrisation rapide des ABR)


Un ABV est un ABR si seulement si la liste des valeurs des nuds
tablie dans lordre infixe est strictement croissante.

Exemple
Avec
T = Naturel,
lABV :

4
2

20
12
7

est un ABR. La liste des


valeurs de ses nuds,
tablie dans lordre
infixe, est strictement
croissante :
h2, 4, 7, 12, 20i.

35 de 1

Oprations sur les ABR

On veux implanter les oprations suivantes :


recherche dun lment : EstDansABR ;
insertion dun lment : InsertABR ;
suppression dun lment : SupprimeABR ;
rotation (rquilibrage).
Note : il y a plusieurs manires dinsrer et de supprimer un
lments. Dautre oprations plus complexes existent (fusion,
partition).

35 de 1

Oprations sur les ABR

On veux implanter les oprations suivantes :


recherche dun lment : EstDansABR ;
insertion dun lment : InsertABR ;
suppression dun lment : SupprimeABR ;
rotation (rquilibrage).
Note : il y a plusieurs manires dinsrer et de supprimer un
lments. Dautre oprations plus complexes existent (fusion,
partition).

35 de 1

Oprations sur les ABR

On veux implanter les oprations suivantes :


recherche dun lment : EstDansABR ;
insertion dun lment : InsertABR ;
suppression dun lment : SupprimeABR ;
rotation (rquilibrage).
Note : il y a plusieurs manires dinsrer et de supprimer un
lments. Dautre oprations plus complexes existent (fusion,
partition).

36 de 1

Recherche dun lment dans un ABR


Algorithme (EstDansABR)
Entre : un ABR a et un lment e
Sortie : VRAI si e apparat dans a, FAUX sinon
si EstVide(a) alors
retourner FAUX
sinon si e = Val(a) alors
retourner VRAI
sinon si e < Val(a) alors
retourner EstDansABR(SAG(A))
sinon
retourner EstDansABR(SAD(A))
Complexit : O(Hauteur(a)) O(Taille(a)).

37 de 1

Insersion aux feuilles


Algorithme (InsertABR)
Entre : un ABR a et un lment e
Sortie : un ABR a0
si EstVide(a) alors
retourner Noeud(a, Vide(), Vide())
sinon si e = Val(a) alors
retourner a
sinon si e < Val(a) alors
retourner Noeud(Val(a), InsertABR(SAG(a)), SAD(a))
sinon
retourner Noeud(Val(a), SAG(a), InsertABR(SAD(a)))
Complexit : O(Hauteur(a)) O(Taille(a)).

38 de 1

Correction de InsertABR

Proposition
Soit a ABR(T ) un ABR et e T un lment. Soit
a0 = InsertABR(a, e). Alors, pour tout x T on a
EstDansABR(a0 , x ) = EstDansABR(a, x ) ou (e = x ) .
Autrement dit,
Valeurs(a0 ) = Valeurs(a) {e}
o Valeurs(a) dsigne lensemble des valeurs qui apparaissent dans
larbre a.

39 de 1

Exemples dinsertions

Exemple
Insertions successives de 4, 20, 12, 2, 7, 3, 6, 0, 15, 1, 13, 14 dans
lABR vide :

39 de 1

Exemples dinsertions

Exemple
Insertions successives de 4, 20, 12, 2, 7, 3, 6, 0, 15, 1, 13, 14 dans
lABR vide :
4

39 de 1

Exemples dinsertions

Exemple
Insertions successives de 4, 20, 12, 2, 7, 3, 6, 0, 15, 1, 13, 14 dans
lABR vide :
4
20

39 de 1

Exemples dinsertions

Exemple
Insertions successives de 4, 20, 12, 2, 7, 3, 6, 0, 15, 1, 13, 14 dans
lABR vide :
4
20
12

39 de 1

Exemples dinsertions

Exemple
Insertions successives de 4, 20, 12, 2, 7, 3, 6, 0, 15, 1, 13, 14 dans
lABR vide :
4
2

20
12

39 de 1

Exemples dinsertions

Exemple
Insertions successives de 4, 20, 12, 2, 7, 3, 6, 0, 15, 1, 13, 14 dans
lABR vide :
4
2

20
12
7

39 de 1

Exemples dinsertions

Exemple
Insertions successives de 4, 20, 12, 2, 7, 3, 6, 0, 15, 1, 13, 14 dans
lABR vide :
4
2

20
3

12
7

39 de 1

Exemples dinsertions

Exemple
Insertions successives de 4, 20, 12, 2, 7, 3, 6, 0, 15, 1, 13, 14 dans
lABR vide :
4
2

20
3

12
7
6

39 de 1

Exemples dinsertions

Exemple
Insertions successives de 4, 20, 12, 2, 7, 3, 6, 0, 15, 1, 13, 14 dans
lABR vide :
4
2
0

20
3

12
7
6

39 de 1

Exemples dinsertions

Exemple
Insertions successives de 4, 20, 12, 2, 7, 3, 6, 0, 15, 1, 13, 14 dans
lABR vide :
4
2
0

20
3

12
7
6

15

39 de 1

Exemples dinsertions

Exemple
Insertions successives de 4, 20, 12, 2, 7, 3, 6, 0, 15, 1, 13, 14 dans
lABR vide :
4
2
0

20
3

12

7
6

15

39 de 1

Exemples dinsertions

Exemple
Insertions successives de 4, 20, 12, 2, 7, 3, 6, 0, 15, 1, 13, 14 dans
lABR vide :
4
2
0

20
3

12

7
6

15
13

39 de 1

Exemples dinsertions

Exemple
Insertions successives de 4, 20, 12, 2, 7, 3, 6, 0, 15, 1, 13, 14 dans
lABR vide :
4
2
0

20
3

12

7
6

15
13
14

39 de 1

Exemples dinsertions

Exemple
Insertions successives de 4, 20, 12, 2, 7, 3, 6, 0, 15, 1, 13, 14 dans
lABR vide :
4
2
0

20
3

12

7
6

15
13
14

40 de 1

Bilan
On a donc une structure de donne pour laquelle les cot de
linsertion et la recherche sont en O(Hauteur(a)) :

Retenir
Dans le pire des cas (arbre filiforme), le cot est en
O(Taille(a)).
En moyenne, le cot est en O(log(Taille(a))).
De plus, en utilisant la rotation (voir G.M. Adelson-Velskii et E.M.
Landis 1962, arbre AVL, arbre rouge-noir), on peut sassurer que
Hauteur(a) reste infrieur
log (n + 2) 1 1.44 log2 (n + 2) 1
o =

1+ 5
2

est le nombre dor et n = Taille(a).

41 de 1

Arbres quilibrs

Dfinition
Lquilibre dun arbre binaire est un entier qui vaut 0 si larbre est
vide et la diffrence des hauteurs des sous-arbres gauche et droit
de larbre sinon.
Un arbre binaire est quilibr lorsque lquilibre de chacun de ses
sous-arbres non vides nexcde pas 1 en valeur absolue.

41 de 1

Arbres quilibrs

Dfinition
Lquilibre dun arbre binaire est un entier qui vaut 0 si larbre est
vide et la diffrence des hauteurs des sous-arbres gauche et droit
de larbre sinon.
Un arbre binaire est quilibr lorsque lquilibre de chacun de ses
sous-arbres non vides nexcde pas 1 en valeur absolue.

42 de 1

Exemple
Lquilibre de chacun des sous-arbres non vides est indiqu sur la
gauche ou la droite de son nud-racine :
1
+1
1

+1
0

quilibr

quilibr
+4

+1
+2
1

+2
0

1
0

non quilibr

non quilibr

0
0

43 de 1

Rotations

b
C
A

rotation droite

rotation gauche

b
A
B

Proposition
Aprs une insertion o une suppression, il suffit de deux rotations
pour r-quilibrer un arbre. Le maintient de lquilibre est possible
en temps constant.