Académique Documents
Professionnel Documents
Culture Documents
Cette définition reste vraie même si l’un des sous-arbres est vide ou si les deux sous-arbres sont
vides, à condition de poser que la valeur minimale dans un arbre vide est +.
Cas de base
La valeur minimale dans un arbre vide est +.
En C++ on utilisera pour + la valeur maximale qui puisse être stockée dans un entier. Cette valeur
est donnée par la constante INT_MAX qui est définie dans le fichier entête climits.
La même méthode peut être utilisée pour trouver le minimum dans un arbre : parcourir l’arbre et
comparer chaque nœud au minimum courant.
Notons que le paramètre m doit être passé par référence à la fonction puisqu’il est modifié par la
fonction.
Il est important de remarquer ici que le raisonnement qui a permis d’aboutir à cette fonction est un
raisonnement purement itératif : on parcourt l’arbre et on compare chaque nœud au minimum
courant. La fonction est cependant récursive puisque le parcours de l’arbre se fait par des appels
récursifs à la fonction. Cette manière de raisonner, sans donner de définition récursive du problème
à résoudre, est adaptée pour certaines fonctions mais doit être utilisée avec précaution.
Pour que la fonction minimum ci-dessus puisse être utilisée de manière plus naturelle dans un
programme, nous fournissons à l’utilisateur de la classe ArbreBinaire la fonction englobante
suivante :
Cette méthode est clairement plus efficace que la précédente puisqu’elle n’effectue qu’un seul test
entre entiers en chaque nœud.