# On suppose que l'on dispose d'une classe File # avec les méthodes enfile et défile. def parcours_largeur(arbre): nœuds = File() nœuds.enfile(arbre) while not nœuds.est_vide(): nœud = nœuds.défile() if nœud is not None: print(nœud.élément) nœuds.enfile(nœud.gauche) nœuds.enfile(nœud.droite) def parcours_largeur(arbre): # Avec les niveaux nœuds = File() nœuds.enfile((arbre, 0)) while not nœuds.est_vide(): nœud, niveau = nœuds.défile() if nœud is not None: print(nœud.élément, niveau) nœuds.enfile((nœud.gauche, niveau + 1)) nœuds.enfile((nœud.droite, niveau + 1))
Un arbre binaire est étiqueté avec des lettres.
- Un parcours préfixe donne un affichage
ALORHGIMET
.- Un parcours infixe donne un affichage
OLHRAMIEGT
.
A
, donc la racine est étiquetée A
. Il n'y a qu'un seul A
, on déduit alors aussi que :
OLHR
en infixe, et donc LORH
en préfixe.MIEGT
en infixe, et donc GIMET
en préfixe.L
, et G
à droite.
O
en préfixe comme en infixe.RH
en préfixe et HR
en infixe.IME
en préfixe et MIE
en infixe.T
en préfixe comme en infixe.ALGORITHME
.