▶ 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
maxest 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
Filecréé plus tôt dans l'année; - utiliser une simple liste de Python (bof bof);
- utiliser la classe
Queuedu 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 | |