On contraint maintenant la structure de données afin de ne représenter que des ensembles d’entiers
strictement ordonnés. C’est la notion d’arbre binaire de recherche, ou Binary Search Tree (BST)
en anglais.
Définition 2 Un arbre binaire de recherche ou BST est:
•soit l’arbre vide () ;
•soit un arbre (l,x,r) où let rsont eux-même deux BST et où xest strictement supérieur
(resp. strictement inférieur) aux entiers présents dans l(resp. dans r).
L’arbre de la figure 1 satisfait cette propriété. Par contre, si on échange deux entiers distincts de
cet arbre, l’arbre obtenu ne satisfait pas la propriété.
Exercice 2 Programmer les traitements suivants sur les BSTs :
1. affichage des entiers du BST par ordre décroissant (en un seul parcours de l’arbre) ;
2. calcul de l’entier maximum du BST non vide (avec un nombre d’opérations au plus propor-
tionnel à la hauteur de l’arbre) ;
3. test si un entier donné apparaît dans le BST (même condition de coût que précédemment) ;
4. étant donné un entier x, construction d’un BST qui réalise l’union d’un BST et du singleton
composé de x: l’élément xsera éventuellement une feuille du nouvel arbre (même condition
de coût que précédemment) ; simuler l’exécution de votre fonction en insérant successivement
les entiers suivants à partir de l’arbre vide : 6, 3, 9, 12, 2, 11 ; idem avec : 1, 2, 4,
6, 8, 9 ;
5. étant donné un tableau d’entiers triés par ordre strictement croissant, construction d’un BST
correspondant à son arbre de recherche dichotomique (en un seul parcours du tableau) ;
6. pour un BST tnon vide, calcul d’un couple (tm, m) où mest l’entier maximum de tet tm est
un BST qui représente tprivé de m(nombre d’opérations au plus proportionnel à la hauteur
de l’arbre) ;
7. calcul d’un BST qui réalise la suppression d’un élément (même condition de coût que précédem-
ment) en utilisant la question précédente.
2