Un cap pour ce chapitre
Ce que vous saurez faire
- Calculer taille et hauteur par décomposition.
- Annoncer une convention de hauteur.
- Relier hauteur, forme et nombre de nœuds.
Les bases utiles pour commencer
Compter tous les nœuds
La taille d’un arbre vide vaut zéro. Pour un arbre non vide, on compte sa racine, les nœuds du sous-arbre gauche et ceux du sous-arbre droit : taille(A)=1+taille(G)+taille(D). Les sous-arbres ne partagent pas de nœuds dans le modèle arborescent ; cette addition ne compte donc personne deux fois.
Considérons une racine 8, un sous-arbre gauche de racine 3 avec feuilles 1 et 6, et un sous-arbre droit de racine 10 avec une feuille droite 14. Le sous-arbre gauche contient trois nœuds, le droit deux ; l’arbre entier contient six nœuds. Les étiquettes numériques ne servent pas au calcul de taille.
Choisir ce que signifie hauteur
Nous comptons ici la hauteur en nombre d’arêtes sur le plus long chemin entre la racine et une feuille. Une feuille a donc hauteur zéro et nous attribuons à l’arbre vide la hauteur -1. Pour un arbre non vide, hauteur(A)=1+max(hauteur(G),hauteur(D)). La valeur -1 permet à la formule de fonctionner pour une feuille.
Une autre convention compte les niveaux ou les nœuds du chemin : l’arbre vide a alors hauteur zéro et une feuille hauteur un. Pour un arbre non vide, les deux mesures diffèrent d’une unité. Dans un exercice, annoncez ou reprenez la convention avant de calculer.
La hauteur ne dépend pas des valeurs inscrites dans les nœuds. Remplacer l’étiquette 8 par 800 ne crée ni chemin ni nœud. Un dessin incliné ou une chaîne repliée ne modifie pas davantage la structure : suivez les liens parent-enfant, pas les distances mesurées sur la page.
Construire un calcul récursif
Représentons un nœud par un tuple (valeur, gauche, droite), et l’absence de nœud par None. Les fonctions inspectent d’abord le cas vide, puis appellent leurs versions sur les deux enfants. Les valeurs remontent depuis les feuilles : il faut connaître les résultats des sous-arbres avant de calculer ceux de leur parent.
def taille(a):
if a is None:
return 0
return 1 + taille(a[1]) + taille(a[2])
def hauteur(a):
if a is None:
return -1
return 1 + max(hauteur(a[1]), hauteur(a[2]))Le maximum choisit le chemin le plus profond ; l’addition des deux hauteurs n’aurait pas ce sens. Chaque appel travaille sur un sous-arbre strictement plus petit, ce qui assure la terminaison sur un arbre fini.
Comprendre les encadrements
Un arbre binaire de hauteur h en arêtes contient au moins h+1 nœuds, ceux d’un plus long chemin, et au plus 2 puissance (h+1) moins un nœuds lorsqu’il remplit tous les niveaux. Une chaîne de six nœuds a hauteur cinq ; les six nœuds de notre exemple ont hauteur deux.
Pour calculer taille et hauteur avec ces fonctions, chaque nœud est visité : le temps est linéaire en la taille. La pile récursive dépend surtout de la hauteur, puisque seuls les appels sur un chemin restent simultanément en attente. Cette différence entre total visité et profondeur active sera utile pour analyser d’autres algorithmes sur les arbres.
Exemple suivi : faire remonter deux mesures
Prenons une racine A, son enfant gauche B avec une seule feuille D, et son enfant droit C qui est une feuille. Pour chaque feuille C et D, notez le couple (taille,hauteur)=(1,0). B reçoit (1,0) d’un côté et (0,-1) du côté vide ; il produit (2,1). A reçoit (2,1) et (1,0), puis produit (4,2). Le tableau est construit des feuilles vers la racine, dans l’ordre où les dépendances deviennent disponibles.
Les opérations n’ont pas le même sens : les tailles s’ajoutent parce que chaque nœud doit être compté, tandis que les hauteurs sont comparées parce qu’un chemin descendant choisit une branche. Pour une racine possédant deux longues chaînes de hauteur deux, additionner les hauteurs donnerait cinq, alors que le plus long chemin contient trois arêtes. Un exemple asymétrique rend cette différence particulièrement visible.
Exemple suivi : déduire une hauteur possible à partir d’une taille
Avec dix nœuds, une hauteur de deux arêtes est impossible : les trois niveaux ne peuvent contenir que 1+2+4=7 nœuds. Une hauteur de trois devient possible, car quatre niveaux peuvent en contenir quinze. La hauteur maximale vaut neuf, réalisée par une chaîne. On obtient donc une hauteur comprise entre trois et neuf, selon la forme de l’arbre.
Le mot « possible » demande une construction ou une capacité suffisante, et le mot « impossible » demande une borne. Pour quinze nœuds avec hauteur trois, tous les niveaux sont nécessairement pleins puisque la capacité maximale est atteinte. Une taille identique ne détermine généralement pas la hauteur, mais certaines égalités contraignent fortement la structure. L’atelier juxtapose un dessin et les résultats récursifs ; le dessin peut être replié pour rester lisible sans changer les chemins logiques.
À vous de faire varier les choses
Même taille, autre hauteur
Choisissez le nombre de nœuds et leur forme. Chaque ligne montre les mesures du sous-arbre correspondant.
Lire le résultat de l’expérience initiale
Taille 6, hauteur 2 en arêtes.
Les lignes suivent la remontée : les enfants sont calculés avant leur parent. G et D désignent les enfants gauche et droit ; une longue chaîne est repliée dans le dessin pour rester lisible.
| Nœud | Taille du sous-arbre | Hauteur du sous-arbre |
|---|---|---|
| 3 | 1 | 0 |
| 2 | 2 | 1 |
| 5 | 1 | 0 |
| 6 | 1 | 0 |
| 4 | 3 | 1 |
| 1 | 6 | 2 |
La taille mesure la quantité totale ; la hauteur dépend de l’organisation de cette quantité.
De la compréhension à l’autonomie
À vous de résoudre
Cherchez d’abord par vous-même. Vérifiez les résultats demandés, utilisez les indices si nécessaire, puis comparez votre méthode à la correction.
Mesurer l’arbre du cours
Pour l’arbre 8 avec enfants 3 et 10, 3 ayant enfants 1 et 6, et 10 ayant enfant droit 14, donnez taille et hauteur en arêtes.
Indice 1
Énumérez les six étiquettes.
Indice 2
Le chemin 8-3-1 comporte deux arêtes.
Comprendre la correction
La taille vaut six. Les chemins les plus longs, comme 8-3-1 et 8-10-14, comportent deux arêtes ; la hauteur vaut donc deux. Avec la convention en niveaux, elle vaudrait trois.
Traiter les bases
Quelles valeurs les fonctions du cours renvoient-elles pour None et pour une feuille (7,None,None) ?
Indice 1
Appliquez d’abord les retours du cas vide.
Indice 2
Remplacez les deux résultats des enfants dans les formules.
Comprendre la correction
Pour None, taille vaut zéro et hauteur vaut -1. Pour la feuille, taille=1+0+0=1 et hauteur=1+max(-1,-1)=0. Ces bases sont cohérentes avec la convention en arêtes.
Corriger une formule
Un élève propose hauteur(A)=1+hauteur(G)+hauteur(D). Sur une racine possédant deux feuilles, que produit cette formule et pourquoi est-elle peu fiable ?
Indice 1
Un exemple où le résultat coïncide ne prouve pas la formule.
Indice 2
Essayez ensuite deux sous-arbres de hauteur un.
Comprendre la correction
Avec deux feuilles de hauteur zéro, elle donne un, par coïncidence. Mais avec deux sous-arbres de hauteur un, elle donne trois au lieu de deux. Un chemin descend à gauche ou à droite, pas dans les deux branches successivement ; il faut donc un maximum.
Encadrer la taille
Un arbre binaire a hauteur trois en arêtes. Quel est le minimum et quel est le maximum possible de nœuds ?
Indice 1
Un chemin de trois arêtes contient quatre nœuds.
Indice 2
Les niveaux complets contiennent 1,2,4 puis 8 nœuds.
Comprendre la correction
Le minimum vaut quatre, sous forme de chaîne. Le maximum vaut 1+2+4+8=15. Toute forme de hauteur trois doit contenir un chemin de quatre nœuds et ne peut dépasser la capacité de ses quatre niveaux.
Problème : reconstruire une remontée
A possède à gauche B et à droite C. B possède deux feuilles D et E ; C possède uniquement un enfant droit F, qui possède un enfant gauche G. Calculez les couples taille-hauteur pour B, F, C puis A. Changez ensuite de convention pour la hauteur en niveaux.
Indice 1
Commencez par D, E et G, qui ont hauteur zéro.
Indice 2
Le sous-arbre le plus haut de A est celui de C.
Comprendre la correction
B donne (3,1), F (2,1), C (3,2), puis A (7,3). En niveaux, les hauteurs deviennent 2,2,3,4, sans changement des tailles. Le chemin A-C-F-G contient quatre nœuds et trois arêtes. La présence de deux sous-arbres de taille trois n’impose pas la même hauteur : leurs organisations diffèrent.
Problème : tester les bornes de capacité
Un arbre binaire a douze nœuds. Peut-il avoir hauteur deux ? Donnez sa hauteur minimale possible et sa hauteur maximale en arêtes. Pour un arbre de hauteur quatre, donnez les tailles minimale et maximale. Justifiez chaque borne.
Indice 1
Additionnez les capacités 1,2,4,8.
Indice 2
Une chaîne réalise les situations les moins ramifiées.
Comprendre la correction
Douze dépasse sept, donc hauteur deux est impossible. La hauteur minimale est trois puisque quatre niveaux peuvent accueillir jusqu’à quinze nœuds ; la maximale est onze pour une chaîne de douze nœuds. À hauteur quatre, un plus long chemin impose cinq nœuds et cinq niveaux complets en autorisent 31. Les deux extrêmes sont réalisables.
Problème : corriger le cas vide
Un programme renvoie zéro pour le vide puis utilise 1+max pour un nœud. Il annonce pourtant mesurer la hauteur en arêtes. Que renvoie-t-il pour une feuille et une chaîne de trois nœuds ? Proposez deux corrections cohérentes, puis décrivez les tests indispensables.
Indice 1
La récurrence propage la valeur de base.
Indice 2
On peut corriger le code ou annoncer une autre convention, selon le besoin.
Comprendre la correction
La feuille reçoit hauteur un et la chaîne trois : le code compte les niveaux. Pour respecter les arêtes, la base vide doit valoir -1 ; sinon il faut annoncer explicitement des niveaux si c’est le besoin retenu. Les tests vide, feuille, chaîne et arbre ramifié vérifient convention et maximum. Une soustraction oubliée dans un seul affichage laisserait les autres résultats incohérents.
Les erreurs qui méritent un détour
- Confondre taille et hauteur.
- La taille additionne tous les nœuds ; la hauteur retient un plus long chemin.
- Oublier la convention de hauteur.
- Arêtes et niveaux diffèrent d’une unité pour un arbre non vide.
La fiche à garder
L’essentiel à retenir
- Taille : 1 plus les deux tailles des sous-arbres.
- Hauteur en arêtes : 1 plus le maximum, avec vide à -1.
- La forme influence la hauteur même à taille identique.
Cette notion au bac
Retrouvez ces idées dans un sujet complet, avec des indices, une correction expliquée et des ateliers.
Le prochain pas
Retrouver le catalogue de Terminale
Ce chapitre s’appuie sur le programme officiel de Terminale (PDF, nouvel onglet). Les explications et exercices sont proposés pour l’apprentissage.
