bonsoir
mon problème réside dans le parcours récursif d'un arbre binaire de recherche.
Il existe 3 types de parcours infixe(g r d), préfixe(r g d) et le postfixe(g d r).
Par exemple le parcours préfixe de l'arbre du fichier joint donne 0 1 2 3 4 5 6 ça c'est clair mais mon problème réside dans la compréhension du tournage à la main de la procédure récursive:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 procedure parcours_prefixe(b:arbre) debut si (b!= nil) alors ecrire(b^.valeur) parcours_prefixe(b^.gauche) parcours_prefixe(b^.droite) fin si fin
1)on donne la racine comme paramètre racine!=nil ---->ecrire 0
parcours_prefixe(b^.gauche)
2)b^.gauche!=nil------->ecrire1
parcours_prefixe(b^.gauche)
3)b^.gauche!=nil------->ecrire2
parcours_prefixe(b^.gauche)
4)là je me plante ce noeud!=nil (il s'agit d'un arbre sans feuille avec 2 comme valaur) mais à ce stade b^.gauche == nil
don on peut pas exécuter les instructions du bloc SI et par la suite on peut pas passer a parcours_prefixe(b^.droite)
cette procedure je la trouve partout, certes elle est correcte et si quelqu'un m'aide à la comprendre pour que je puisse continuer à resoudre mes exercices je le serai reconnaissante
j'espère que je me suis bien exprimée et désolée s'il sagit d'une question bête.
Partager