Bonjour à tous !
J’essaye de réaliser une fonction en C qui devra effectuer un parcours infixe d’un arbre tout en écrivant chaque caractère lu dans un fichier. Cependant j’ai un problème : le parcours est bien celui que je souhaite mais l’ordre d’écriture dans le fichier n’est pas le même que l’ordre de parcours. J’ai ici un arbre à 3 noeuds dont le noeud racine est étiquetté par '+’, le fils droit par '2' et le fils gauche par '6’. Je souhaiterai que ma fonction écrive dans le fichier dans cette ordre : '2’,'+’,'6' mais elle écrit : '2’,'6’,'+’. J’ai donc rajouté un printf du caractère courant dans la fonction et ce printf affiche bien l’ordre que j’attends !
Voici le code de la fonction :
void parcours_infixe(noeud* racine, char* file_name)
{
FILE* mon_flux=fopen(file_name,"a");
if(racine!=NULL){
parcours_infixe(racine->filsG,file_name);
printf("%c",racine->val);
fputc(racine->val,mon_flux);
parcours_infixe(racine->filsD,file_name);
}
fclose(mon_flux);
}
Voici ce que rend l’execution de la fonction (donc les appels à printf()) :
2+6
Et voici ce que contient le fichier "test2.txt" :
26+
Merci d’avance pour votre aide