On défini un arbre binaire par :
- Soit un arbre binaire vide (souvent appelé nil).
- Soit c'est un nœud qui possède une étiquette et deux sous-arbres binaires, un à gauche, un à droite, possiblement vides l'un et/ou l'autre.
On considère l'algorithme suivant qui décrit un parcours en largeur sur un arbre binaire :
- On suppose l'arbre non vide.
- On place l'arbre dans une file
- Tant que la file n'est pas vide, on défile un élèment, on affiche l'étiquette de sa racine et on place dans la file chacun des sous arbres (s'ils ne sont pas vides) en commençant par placer le sous arbre gauche puis le droit.
Les arbres binaires sont ici modélisés dans Python avec un style POO (Programmation Orientée Objet).
On dispose également d'une classe File
implémentant la structure de donnée des files.
Compléter la fonction largeur
en bas du script suivant. Cette fonction prend en argument une instance de la classe ArbreBinaire
et affiche les étiquettes des noeuds de cet arbre parcouru avec un parcours en largeur.