Fiche de cours

Utiliser Python pour déterminer les mesures des arbres binaires

Lycée   >   Terminale   >   NSI   >   Utiliser Python pour déterminer les mesures des arbres binaires

  • Fiche de cours
  • Quiz et exercices
  • Vidéos et podcasts
Objectifs
  • Utiliser Python pour déterminer la taille d’un arbre binaire.
  • Utiliser Python pour déterminer la hauteur d’un arbre binaire.
Points clés
  • La taille et la hauteur d’un arbre binaire se calculent récursivement.
  • La taille et la hauteur d’un arbre binaire vide valent 0.
  • La taille d’un arbre binaire non vide vaut :
    1 + taille(sous-arbre gauche) + taille(sous-arbre droit).
  • La hauteur d’un arbre binaire non vide vaut :
    1 + max(hauteur(sous-arbre gauche), hauteur(sous-arbre droit)).
Pour bien comprendre
  • Comprendre la structure hiérarchique et le vocabulaire des arbres binaires.
  • Étudier et implémenter un arbre binaire.
  • Utiliser la récursivité en Python.
1. La taille d'un arbre binaire
a. Définition d'un arbre binaire (rappel)
Un arbre binaire est un arbre dont les nœuds ont au plus deux fils. On parle alors de fils gauche et de fils droit. Dans le cas où un nœud a un seul fils, on parle indifféremment de fils gauche ou de fils droit.
b. Principe
La taille d’un arbre binaire est son nombre de nœuds.

Pour la calculer, on peut utiliser la représentation récursive des arbres binaires.

En effet, un arbre binaire a est :
  • soit vide : sa taille sera égale à 0.
  • soit non vide : dans ce cas, a sera composé de sa racine, de son sous-arbre gauche et de son sous-arbre droit.
    Sa taille sera donc :
    + taille(sous-arbre gauche) + taille(sous-arbre droit)
c. Algorithme

Voici ci-dessous un algorithme de la fonction récursive de calcul de la taille d’un arbre binaire a.

Algorithme Explication
Fonction taille(AB a): On définit la fonction taille qui prend pour paramètre un arbre binaire a de type AB (arbre binaire).
    Si est_vide(a), alors
        retourner 0
Si a est vide, on retourne 0.
    Sinon,
        retourner 1 + taille(sag(a)) 
        + taille(sad(a))
Sinon on retourne la somme de 1 (racine), de la taille de son sous-arbre gauche et de la taille de son sous-arbre droit.
    FinSi Fin de l’instruction conditionnelle

est_vide(a) vaut ici Vrai si a est vide et Faux sinon.

sag(a) représente le sous-arbre gauche de a et sad(a) représente son sous-arbre droit.

d. Programmation

En Python, la fonction taille(arbre) implémente le calcul de la taille de l’arbre arbre.      

Python Explication
def taille(arbre): On définit la fonction taille.
    if arbre.est_vide(): Si l’arbre est vide,
        return 0 retourner 0,
    else: Sinon
        return 1 + taille(arbre.sag)
        +
 taille(arbre.sad)
retourner la somme de 1, de la taille de son sous-arbre gauche et de la taille de son sous-arbre droit.
Exemple
On considère l’arbre binaire suivant.

Voici l'exécution du code précédent sur Python Tutor.

taille(a) renvoie bien 6 (il y a 6 nœuds).

2. La hauteur d'un arbre binaire
a. Principe
La hauteur d’un arbre binaire (ou profondeur) est le nombre de niveaux qu’il contient.

Pour la calculer, on utilise la représentation récursive des arbres binaires.

En effet, un arbre binaire a est :
  • soit vide : sa hauteur sera égale à 0 ;
  • soit non vide : dans ce cas, la racine de a correspond à 1 niveau. Il suffit ensuite d’ajouter le maximum de la hauteur de ses sous-arbres.
    Sa hauteur sera donc :

    1 + max(hauteur(sous-arbre gauche), hauteur(sous-arbre droit))
b. Algorithme

Voici ci-dessous un algorithme de la fonction récursive du calcul de la hauteur d’un arbre binaire a.

Algorithme Explication
Fonction hauteur(AB a) : On définit la fonction hauteur qui prend pour paramètre un arbre binaire a de type AB (arbre binaire).
    Si est_vide(a), alors
        retourner 0
Si a est vide, on retourne 0.
    Sinon,
        retourner 1
 
        + max(hauteur(sag(a)),
        hauteur(sad(a)))
Sinon on retourne la somme de 1 (racine) et du maximum de la hauteur de son sous-arbre gauche et de la hauteur de son sous-arbre droit.
    FinSi Fin de l’instruction conditionnelle
c. Programmation

En Python, la fonction hauteur(arbre) implémente le calcul de la taille de l’arbre arbre.

Python Explication
def hauteur(arbre): On définit la fonction hauteur
    if arbre.est_vide(): Si l’arbre est vide,
        return 0 retourner 0,
    else: Sinon
       return 1 
       + max(hauteur(arbre.sag),
       hauteur(arbre.sad))
retourner la somme de 1 et du maximum de la hauteur de son sous-arbre gauche et de la hauteur de son sous-arbre droit.
Exemple
On considère l’arbre binaire suivant.

Voici l'exécution du code précédent sur Python Tutor.

hauteur(a) renvoie bien 4 (il y a 4 niveaux).

d. Mesures (rappels)
Un arbre complet de hauteur h aura 2h – 1 feuilles (nœuds qui ne sont pères d’aucun autre nœud).
Sa taille sera 2h  1.
La taille d’un arbre binaire de hauteur h est comprise entre h (arbre dont chaque nœud a un seul fils) et 2h  1 (arbre complet).
Exemple
On étudie l’arbre binaire suivant.

  • La hauteur de cet arbre complet est h = 3 et il a bien :
    2h 1 = 23  1 = 4 feuilles.
  • La taille de cet arbre est bien 2h – 1 = 23  1 = 7.

Évalue ce cours !

 

Des quiz et exercices pour mieux assimiler sa leçon

La plateforme de soutien scolaire en ligne myMaxicours propose des quiz et exercices en accompagnement de chaque fiche de cours. Les exercices permettent de vérifier si la leçon est bien comprise ou s’il reste encore des notions à revoir.

S’abonner

 

Des exercices variés pour ne pas s’ennuyer

Les exercices se déclinent sous toutes leurs formes sur myMaxicours ! Selon la matière et la classe étudiées, retrouvez des dictées, des mots à relier ou encore des phrases à compléter, mais aussi des textes à trous et bien d’autres formats !

Dans les classes de primaire, l’accent est mis sur des exercices illustrés très ludiques pour motiver les plus jeunes.

S’abonner

 

Des quiz pour une évaluation en direct

Les quiz et exercices permettent d’avoir un retour immédiat sur la bonne compréhension du cours. Une fois toutes les réponses communiquées, le résultat s’affiche à l’écran et permet à l’élève de se situer immédiatement.

myMaxicours offre des solutions efficaces de révision grâce aux fiches de cours et aux exercices associés. L’élève se rassure pour le prochain examen en testant ses connaissances au préalable.

S’abonner

Des vidéos et des podcasts pour apprendre différemment

Certains élèves ont une mémoire visuelle quand d’autres ont plutôt une mémoire auditive. myMaxicours s’adapte à tous les enfants et adolescents pour leur proposer un apprentissage serein et efficace.

Découvrez de nombreuses vidéos et podcasts en complément des fiches de cours et des exercices pour une année scolaire au top !

S’abonner

 

Des podcasts pour les révisions

La plateforme de soutien scolaire en ligne myMaxicours propose des podcasts de révision pour toutes les classes à examen : troisième, première et terminale.

Les ados peuvent écouter les différents cours afin de mieux les mémoriser en préparation de leurs examens. Des fiches de cours de différentes matières sont disponibles en podcasts ainsi qu’une préparation au grand oral avec de nombreux conseils pratiques.

S’abonner

 

Des vidéos de cours pour comprendre en image

Des vidéos de cours illustrent les notions principales à retenir et complètent les fiches de cours. De quoi réviser sa prochaine évaluation ou son prochain examen en toute confiance !

S’abonner

Découvrez le soutien scolaire en ligne avec myMaxicours

Plongez dans l'univers de myMaxicours et découvrez une approche innovante du soutien scolaire en ligne, conçue pour captiver et éduquer les élèves de CP à la terminale. Notre plateforme se distingue par une riche sélection de contenus interactifs et ludiques, élaborés pour stimuler la concentration et la motivation à travers des parcours d'apprentissage adaptés à chaque tranche d'âge. Chez myMaxicours, nous croyons en une éducation où chaque élève trouve sa place, progresse à son rythme et développe sa confiance en soi dans un environnement bienveillant.

Profitez d'un accès direct à nos Profs en ligne pour une assistance personnalisée, ou explorez nos exercices et corrigés pour renforcer vos connaissances. Notre assistance scolaire en ligne est conçue pour vous accompagner à chaque étape de votre parcours éducatif, tandis que nos vidéos et fiches de cours offrent des explications claires et concises sur une multitude de sujets. Avec myMaxicours, avancez sereinement sur le chemin de la réussite scolaire, armé des meilleurs outils et du soutien de professionnels dédiés à votre épanouissement académique.

Fiches de cours les plus recherchées

NSI

Utiliser Python dans les arbres binaires de recherche

NSI

Rechercher et insérer une clé dans un arbre binaire de recherche

NSI

Parcourir un arbre binaire

NSI

Se déplacer dans un graphe

NSI

Utiliser la méthode « diviser pour régner »

NSI

Programmer de manière dynamique

NSI

Étudier la complexité mémorielle

NSI

Rechercher un motif dans un texte : l'algorithme de Boyer-Moore

NSI

Comprendre les requêtes HTTP et la réponse serveur

NSI

Comprendre la notion de réseau et de protocole

NSI

Comprendre les protocoles de la couche physique

NSI

Comprendre les protocoles de la couche liaison dans un réseau local

NSI

Comprendre les protocoles de la couche réseau

NSI

Comprendre les protocoles de la couche transport

NSI

Décrire des protocoles de récupération de paquets

NSI

Affecter une valeur, utiliser une séquence d'actions

NSI

Utiliser des structures conditionnelles

NSI

Utiliser des boucles