Bonjour à tous,
Voici mon problème: j'ai créé une fonction en C qui doit parcourir un arbre binaire et renvoyer un pointeur sur un noeud dès qu'il trouve une valeur que je lui donne en paramètre, cette fonction marche dans 80% des cas, mais dans 20% des cas elle me renvoie le pointeur sur le dernier noeud de l'arbre.
Je précise que j'effectue un parcours préfixe et qu'il s'agit d'un arbre binaire, je fais un controle dans la fonction (cf code: noeud cherché, noeud trouvé) et qu'il présente le pointeur sur le bon noeud, en faisant le même contrôle dans le main sur la valeur de retour je m'aperçoit que le pointeur n'est plus le bon.
Quelqu'un aurait-il une idée de la raison de ce comportement?
un grand merci pour vos réponses
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 NODE* parcoursVal (NODE * ptrNod, int valName) { NODE* ptrRd; if (ptrNod->name == valName) { printf("noeud cherché %i, noeud trouvé %i\n",valName,ptrNod->name); return ptrNod; } if (ptrNod->filsg != NULL) { parcoursVal (ptrNod->filsg, valName); } if (ptrNod->filsd != NULL) { parcoursVal (ptrNod->filsd, valName); } }
Partager