Vous êtes sur la page 1sur 11

Programme NSI - TD

Terminale

THEME: Structures de données

PARTIE : structures de données hiérarchiques

1 Bertrand Xerri Classe de Terminale NSI


Représentation graphique des arbres binaires en Python
Représentation graphique d’un arbre
• Librairie – Bibliothèque adaptée:
binarytree
• 2 fonctions importantes:
tree:
créer arbre, hauteur donnée
Node:
créer des nœuds dans l’arbre créé
Installer un module/librairie:
• Edupython:
• Outils  Outils  Installer un module avec pip  binarytree
• Thonny:
• Outils  Gérer les paquets  binarytree  Installer
• Spyder: Ouvrir Anaconda Prompt via menu Démarrer
• Anaconda Prompt  pip install binarytree  Redémarrer Spyder
2 Bertrand Xerri Classe de Terminale NSI
Représentation graphique des arbres binaires en Python
Création arbre aléatoire de hauteur donnée – Utilisation de la fonction tree

3 Bertrand Xerri Classe de Terminale NSI


Représentation graphique des arbres binaires en Python
Création arbre nœud par nœud –Utilisation de la fonction Node

4 Bertrand Xerri Classe de Terminale NSI


Représentation graphique des arbres binaires en Python
On considère l’arbre binaire suivant:

Réalisez le code Python permettant d’obtenir une représentation


graphique de cet arbre.
Faites vérifier le résultat obtenu à votre enseignant.

5 Bertrand Xerri Classe de Terminale NSI


Représentation des arbres binaires en Python

Racine d’un arbre = r


Fils de gauche = fg
Fils de droite = fd
Arbre de racine r et fils fg et fd = [r, fg, fd]

Arbre de départ:

1. Comment représenter cet arbre en Python?


Proposition de représentation de cet arbre en Python?
a = [40, [14, [5, [], []], [4, [], [8, [], []]]], [6, [], []]]
6 Bertrand Xerri Classe de Terminale NSI
Représentation des arbres binaires en Python – Aide récursivité

Méthode de résolution d’un problème avec


les solutions de plus petites instances de ce
même problème.

Avantages de la récursivité:

•Ajoute de la simplicité lors de l’écriture de


code, ce qui facilite le débogage
•Réduit la durée d’exécution d’un
algorithme en fonction de la longueur de
l’entrée

Exemple: écrire une fonction qui calcule la


somme des « n » premiers entiers:
Solution avec méthode récursive 
7 Bertrand Xerri Classe de Terminale NSI
Représentation des arbres binaires en Python

Ecrire une fonction nommée Hauteur qui permet de calculer la hauteur


d’un arbre.
Paramètre d’entrée: ?
Arbre à traiter donc liste
Paramètre de sortie: ?
Valeur entière donc int

Aide – Exemple:
ma_liste = [40, [14, [5, [], []], []], []]
taille = len(ma_liste)
print(taille)

Résultat obtenu?

8 Bertrand Xerri Classe de Terminale NSI


Représentation des arbres binaires en Python

Ecrire une fonction nommée nb_noeuds qui permet de calculer le


nombre de nœuds d’un arbre binaire

Paramètre d’entrée: ?
Arbre à traiter donc liste
Paramètre de sortie: ?
Valeur entière donc int

10 Bertrand Xerri Classe de Terminale NSI


Représentation des arbres binaires en Python

Ecrire une fonction nommée nb_feuilles qui permet de calculer le


nombre de feuilles d’un arbre binaire

Paramètre d’entrée: ?
Arbre à traiter donc liste
Paramètre de sortie: ?
Valeur entière donc int

12 Bertrand Xerri Classe de Terminale NSI


Sources
• https://developpement-informatique.com/article/337/td1-arbres
• http://math.univ-lyon1.fr/irem/Formation_ISN/formation_recursivite/arborescence/arbres.html
•https://lyceum.fr/tg/nsi/5-algorithmique/1-algorithmes-sur-les-arbres-binaires

14 Bertrand Xerri Classe de Terminale NSI

Vous aimerez peut-être aussi