Académique Documents
Professionnel Documents
Culture Documents
Afin de vérifier vos réponses aux trois questions précédentes, cet arbre est implémenté en Python
dans le fichier TD08.py que vous trouverez dans votre cours sur Moodle.
6. Ajouter dans le fichier TD08.py une fonction récursive prefixe(a) qui reçoit un arbre en
paramètre et qui retourne une chaîne de caractères correspondant au parcours prefixe de l’arbre.
La chaîne renvoyée est-elle en accord avec votre réponse à la question 3 ?
7. Même question avec une fonction récursive postfixe(a) qui reçoit un arbre en paramètre et qui
retourne une chaîne de caractères correspondant au parcours postfixe de l’arbre.
La chaîne renvoyée est-elle en accord avec votre réponse à la question 4 ?
8. Même question avec une fonction récursive infixe(a) qui reçoit un arbre en paramètre et qui
retourne une chaîne de caractères correspondant au parcours infixe de l’arbre.
La chaîne renvoyée est-elle en accord avec votre réponse à la question 5 ?
9. Modifier cet arbre de manière à diminuer sa hauteur sans changer son parcours prefixe.
pseudo-code
ParcoursLargeur(arbre)
Initialiser une chaîne de caractères vide
Créer une file d'attente vide "file"
Ajouter l’arbre dans la file
Tant que la file n’est pas vide :
Ajouter le valeur de la racine à la chaîne de caractères
Si le sous-arbre gauche du premier élément de la file existe :
Le Mettre en file d'attente
Si le sous-arbre droit du premier élément de la file existe :
Le Mettre en file d'attente
Supprimer le 1er élément de la file
Renvoyer la chaîne de caractères
Méthode récursive
Deux fonctions dans cette méthode :
• AfficheNiveau affiche tous les nœuds à un niveau donné.
• ParcoursLargeur parcourt l’arbre en largeur. Cette fonction utilise AfficheNiveau pour afficher
un à un les nœuds à tous les niveaux, à partir de la racine.
pseudo-code
ParcoursLargR(arbre)
Pour n = 1 à hauteur(arbre)
AfficheNiveau(arbre, n);
AfficheNiveau(arbre, niveau)
SI arbre n’existe pas ALORS retourne;
SI niveau = 1 ALORS ECRIRE(arbre.valeur)
SINON SI niveau > 1 ALORS
AfficheNiveau(arbre→gauche, niveau-1)
AfficheNiveau(arbre→droit, niveau-1)
>>> ParcoursLargR(arbre)
ABCDEFGHIJ