Vous êtes sur la page 1sur 4

ALGORITHMIQUE ET COMPLEXITE

CORRECTION TD : LES ARBRES BINAIRES DE RECHERCHES ABR

Exercice 1

4 9

1 5

Donner l’arbre binaire de recherche obtenu après l’insertion successive des valeurs :
7,4, 5, 1 et 9.

Exercice 2
Les 6 combinaisons sont : (1,2,3), (1,3,2) (2,1,3) (2,3,1) (3,2,1) (3,1,2)
On aura 5 graphes.
3

A1

1
3

A2

1
1

A3

2
A4

1 2

A5

Exercice 3

4 9

1 5 17

Exercice 4

5 9

1
2
Exercice 5

4
9

Exercice 6
Ecrire la fonction existe qui renvoie vrai si une valeur val est présente dans un
l’arbre binaire de recherche et renvoie faux si non.

FONCTION existe (r:^arbre, val : entier) : booléen


Variable
Debut
si(r=nil) alors
existe faux
sinon
si(r^.valeur=val) alors
existe vrai
sinon
si(val<r^.valeur) alors
existe existe(r^.filsg,val)
sinon
existe existe(r^.filsd,val)
finsi
finsi
finsi
Fin
Exercice 7
Ecrire la fonction ABR qui accepte un arbre et renvoie vrai si l’arbre est binaire de
recherche, sinon faux.

3
FONCTION ABR (r:^arbre) : booléen
variable
Début
si(r=nil ou estfeuille(r)) alors
ABR vrai
sinon
si(r^.filsg<>nil et r^.filsd<>nil) alors// deux fils
si(r^.valeur>r^.filsg^.valeur et r^.valeur<=r^.filsd^.valeur) alors
ABR ABR(r^.filsg) et ABR(r^.filsd)
sinon
ABR faux
finsi
sinon
si(r^.filsg<>nil et r^.filsd=nil) alors//1 fils à gauche
si(r^.valeur>r^.filsg^.valeur) alors
ABR ABR(r^.filsg)
sinon
ABR faux
finsi
sinon
si(r^.valeur<=r^.filsd^.valeur) alors //1 fils à droite
ABR ABR(r^.filsd)
sinon
ABR faux
finsi
finisi
finsi
Fin

Vous aimerez peut-être aussi