chargement - C - Programmation
Marsh Posté le 10-05-2011 à 22:18:14
Citation : void view(ar_arbre *racine) |
ça m'a l'air plantogène, ça.
C'est pas:
void view(ar_arbre *racine)
{
if (racine) {
view(racine->gauche);
printf("%d\n",racine->code);
view(racine->droit);
}
}
que tu voulais faire?
A+,
Marsh Posté le 10-05-2011 à 22:42:01
Hmm, tu devrais aussi commencer par initialiser proprement tes variables locales dans main(), ça évitera que ça te pête à la figure dans insertion().
Marsh Posté le 10-05-2011 à 23:18:31
Ben relis ton code, en particulier ce qui risque de se passer au premier appel de insertion, dans le main, si une certaine initialisation n'est pas effectuée...
De toute façon, plus je relis l'algo, moins je vois de raison pour qu'il marche, vu qu'a aucun moment, v (pas initialisé) ne change de valeur dans le insertion(&(noeud),v,s,f) de la boucle de lecture.
A+,
Marsh Posté le 10-05-2011 à 23:40:24
Le premier appel de insertion(&(noeud),v,s,f)
noeud est pas initialisé, donc il n'y a aucune raison que *noeud vaille nul et que ton premier test, if (*noeud==NULL) fonctionne
d'autre part, tu appelles systématiquement insertion dans la boucle avec l'entier v qui n'est pas initialisé (et ne changera pas de valeur, car passage par valeur de v) donc le test if (v>(*noeud)->code) est fait avec une valeur de v constante (et sans doute incohérente).
Donc à toi de rectifier cela.
comme il n'y a pas de commentaire expliquant le role de v, je n'ai pas de boule de cristal pour deviner son role exact.
A+,
Marsh Posté le 11-05-2011 à 10:13:10
bonjour,
j'ai trouvé la solution,ce n'était pas une question d'initialisation mais de positionnement dans le fichier.En tt cas je vous remercie pour votre aide
Marsh Posté le 10-05-2011 à 21:46:00
bonjour,
j'essais de charger à partir d'un fichier de données un arbre,j'ai utilisé une fonction récursive mais ça ne marche pas et j'ignore vraiment la reson si vous pouvez verifier avec moi, merci
voici mon code