▶ TP Arbres binaires⚓︎
Objectif
Dans ce TP, il s'agit d'utiliser l'implémentation POO d'un arbre binaire et d'implémenter des fonctions:
- de calcul de taille
- de calcul de hauteur
- de parcours (largeur, préfixe, infixe, postfixe)
Reprendre le fichier arbre_binaire.py
et compléter au fur et à mesure la classe AB
.
Stratégie
Dès que possible, il s'agit d'exploiter le caractère récursif de la structure d'arbre pour écrire les méthodes suivantes...
Exercice 1: Taille et hauteur
- Écrire une méthode renvoyant la taille d'un arbre binaire.
-
Écrire une méthode renvoyant la hauteur d'un arbre binaire.
Indice en bas de votre écran: la fonction
max
est autorisée.
1 2 3 4 5 6 7 8 9 10 11 12 |
|
Exercice 2: BFS
Écrire une méthode qui effectue un parcours en largeur d'abord de l'arbre et qui renvoit l'ordre de parcours des nœuds (sous forme d'une liste par exemple).
Rappel: l'algorithme (donné à la page précédente) nécessite l'utilisation d'une file. Pour cela vous pouvez:
- utiliser «votre» objet
File
créé plus tôt dans l'année; - utiliser une simple liste de Python (bof bof);
- utiliser la classe
Queue
du modulequeue
, qui possède les méthodesempty
,put
(pour enfiler) etget
(pour défiler).
Exercice 3 : DFS
Écrire les méthodes prefixe
, infixe
et postfixe
parcourant l'arbre en profondeur d'abord selon les algorithmes correspondants (page précédente). Le traitement de la racine consistera en un affichage (print
).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
|
Exercice 4 : recherche d'une valeur
Écrire une méthode permettant de déterminer si un arbre contient une valeur donnée. La méthode renverra un booléen selon le résultat de la recherche.
Avec un parcours préfixe adapté:
1 2 3 4 5 6 7 |
|
1 2 3 4 5 6 7 8 9 10 11 |
|