leçon arbres binaires nsi terminale
Publié le 22/04/2026
Extrait du document
«
Arbres binaires
1 Les arbres
1.1 Introduction
•
Les listes, piles et files vues précédemment sont
des
structures
de
données
linéaires.
Malheureusement, ces structures ne sont plus
adaptées dès que l’on souhaite décrire l’ensemble
des fichiers d’un ordinateur ou bien tout ou partie
des espèces vivantes sur Terre.
•
Nous allons donc décrire les arbres qui sont des structures de données hiérarchiques et qui vont
permettre des recherches rapides dans de vastes ensembles.
1.2 Définitions
•
Un arbre est une structure de données
constituée de nœuds, qui peuvent avoir ou non
des enfants.
◦ Dans un système de fichiers, chaque nœud
mémorise l’adresse sur le disque (pour un
dossier comme pour un fichier), ainsi que
les attributs (nom, poids, date, droits
rwx ...)
◦ Le sommet de l’arbre est appelé racine
(Website dans l’exemple ci-contre).
◦ Les enfants sont soit d’autres nœuds, soit
des feuilles (Application2, PageA.htm,
Picture1.gif ...)
•
Une branche est une suite finie de nœuds consécutifs de la racine vers une feuille (Website –
Application1 – PageA.htm).
S08 Arbres binaires
Terminale NSI – BNS – Lycée Victor Duruy
1 / 10
•
Un arbre peut être caractérisé par :
◦ Sa taille : le nombre de nœuds qui le compose.
◦ Son arité : le nombre maximal d’enfants qu’un nœud peut avoir.
2 Les arbres binaires
2.1 Définitions
•
Les arbres binaires sont constitués de nœuds ayant 0, 1 ou 2
enfants, soit une arité égale à 2.
•
Pour chaque nœud (donc autre qu’une feuille), on définit les
enfants comme deux sous-arbres : le sous-arbre gauche
(SAG), et le sous-arbre droit (SAD).
◦ L’arbre ci-contre représente l’opération arithmétique
(a*b) + (c – (d+e)).
◦ SAG (*) = a, SAD(*) = b
◦ SAG(-) = c, SAD(-) = (+,d,e)
2.2 Cas particuliers
•
Un arbre est qualifié de dégénéré ou filiforme, lorsque ses nœuds ne possèdent
aucun ou qu’un seul enfant.
•
Un arbre binaire est localement
complet lorsque ses nœuds
possèdent soit deux enfants, soit
aucun.
•
Un arbre binaire est complet lorsque :
R
R
R
◦ il est localement complet ;
◦ toutes ses feuilles sont au niveau
hiérarchique le plus bas.
S08 Arbres binaires
Terminale NSI – BNS – Lycée Victor Duruy
2 / 10
2.3 Hauteur
•
On définit la hauteur d’un arbre comme le plus grand nombre de nœuds rencontrés en descendant de la
racine jusqu’à une feuille.
Le long de cette descente, tous les nœuds sont comptés, y compris la racine et
la feuille.
Hauteur
1
R
◦ L’arbre ci-contre a une
hauteur égale à 4.
2
◦ Un arbre vide a pour
hauteur 0.
3
4
•
Si N désigne la taille d’un arbre (son nombre de nœuds), et si h désigne sa hauteur, on a alors :
h
h ⩽ N ⩽ 2 −1
◦ L’inégalité de gauche vient du fait qu’un
arbre de hauteur h possède au moins h
nœuds (cas de l’arbre dégénéré, § Cas
particuliers).
◦ L’inégalité de droite correspond au cas de
l’arbre complet ci-contre.
Compléter la
dernière ligne du tableau :
h
1
2
3
4
2h
2
4
8
16
N
•
La hauteur est une notion importante : elle entre en ligne de compte lorsque la complexité des
algorithmes dépend directement de la hauteur des arbres.
S08 Arbres binaires
Terminale NSI – BNS – Lycée Victor Duruy
3 / 10
3 Implémentation objet
3.1 La classe « Noeud »
•
Chaque nœud d’un arbre ressemble à la cellule d’une liste chaînée : en plus de
l’information à mémoriser (nom du fichier, opérateur arithmétique …), on y stockera
deux adresses au lieu d’une.
Noeud
valeur
@ SAG
class Noeud :
def __init__(self, valeur, sag, sad) :
self.valeur = valeur
self.sag = sag
self.sad = sad
•
@ SAD
Remarques :
◦ Pour alléger l’écriture, nous ne protégeons par les trois attributs d’un nœud ; nous y accèderons donc
par la syntaxe nœud.valeur, nœud.sag …
◦ L’implémentation objet ci-dessus paraît naturelle, mais il faut insister ici sur le fait que chaque sousarbre ne désigne en fait que d’autres nœuds, donc des objets de type Noeud.
•
Exercices :
◦ A partir de la classe Noeud, déclarer le premier arbre ci-contre et
le stocker dans la variable arbre1.
Toutes les valeurs seront
stockées sous forme de chaînes de caractères.
On rappelle que
pour une feuille, les adresses sad et sag sont initialisées à None.
◦ Déclarer le second arbre ci-contre et
le stocker dans la variable arbre2.
Toutes les valeurs seront stockées
sous forme de chaînes de caractères.
7
5
véhicule
2 roues
vélo
S08 Arbres binaires
+
Terminale NSI – BNS – Lycée Victor Duruy
4 roues
moto
auto
4 / 10
4 Mesures sur les arbres binaires
4.1 Taille d’un arbre binaire
•
La taille d’un arbre A correspond au nombre de ses nœuds.
Son calcul se fera de manière récursive
selon la formule : T ( A)= 0 si A est vide
1+ T SAG( A) +T SAD (A )
•
Nous définissons la fonction taille() en dehors de la classe Noeud :
(
def taille(noeud) :
if noeud is None :
return 0
else :
return 1 + taille(noeud.sag) + taille(noeud.sad)
•
Remarque :
◦ Le choix des noms de variables est ici capital.
Nous voulons bien calculer la taille de l’arbre
complet, mais j’ai essayé d’éviter toute confusion en n’adoptant pas la notation suivante :
def taille(arbre) :
if noeud is None :
return 0
else :
return 1 + taille(noeud.sag) + taille(noeud.sad)
◦ Appeler cette fonction en lui fournissant l’adresse de la racine et non celle d’un nœud quelconque
revient à calculer la taille de l’arbre complet.
•
Tester cette fonction sur les objets arbre1 et arbre2 de l’exercice précédent.
4.2 Hauteur
•
Définitions :
◦ Soit p le nœud parent d’un nœud n.
La hauteur ou profondeur d’un nœud n est définie par :
H (n)= 0 sin est laracine
1+ H ( p)
(
◦ La hauteur ou profondeur d’un arbre A est la valeur maximale des hauteurs de tous les nœuds n :
H ( A)=max (H (n))
•
La fonction max() est intégrée dans Python.
Effectuer les tests suivants en console :
>>> max(5, -2)
>>> max(5, -2, 7.4)
S08 Arbres binaires
Terminale NSI – BNS – Lycée Victor Duruy
5 / 10
•
Algorithme récursif :
def hauteur(noeud) :
""" Renvoie la hauteur d’un arbre dont on fournit la racine"""
if noeud is None :
return 0
else :
return 1 + max(hauteur(noeud.sag), hauteur(noeud.sad))
•
Exemple :
◦ Le seul moyen de connaître la hauteur
d’un arbre est d’effectuer tous les
chemins possibles, de la racine
jusqu’aux feuilles.
◦ Parmi tous les chemins possibles, seul....
»
↓↓↓ APERÇU DU DOCUMENT ↓↓↓
Liens utiles
- Classe de terminale NSI Le contrôle de redondance cyclique La somme de contrôle
- Correction dissertation sur le Moyen orient hggsp terminale
- Grand oral NSI: la voiture autonome la voiture de demain ?
- devoir 2 français cned La Leçon, d’Eugène Ionesco
- Grand Oral : récursivité et récurrence (maths/ NSI)