Graphe - Parcours en largeur
Bonjour a tous,
Depuis hier soir j'essai de developper l'algorithme de parcours de graphe. J'ai 2 structure(liste chainée) une pour les noeud l'autre pour les arc. J'ai essayer par ce code, en commencant par le noeud 0 (int depart) cela marche pour le debut:
Ca affiche:
V[0]:0
V[1]:4
V[2]:3
V[3]:2
V[4]:6
V[5]:3
V[6]:-1
Au lieu d'afficher:
0
4
3
2
6
1
5
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
| void largeur()
{
int depart=0;
int i;
int *V;
Gare * garess =liste_gare;
Rail * railss =liste_rail;
int nbnd=image.nb_gare;
V=(int *)malloc(sizeof(int)*nbnd);
for(i=0;i<nbnd;i++)
{
V[i]=-1;
}
i=0;
V[i]=depart;
i++;
while(garess->suiv!=NULL)
{
depart=V[i-1];
if(garess->id==depart)
{
Rail * railss =liste_rail;
while(railss->suiv!=NULL)
{
if(railss->idGareDep==depart)
{
V[i]=railss->idGareDar;
printf("V[%d]=%d\n",i,V[i]);
i++;
}
railss=railss->suiv;
}
}
garess=garess->suiv;
}
for(i=0,j=0;i<nbnd;i++,j++)
{
printf("V[%d]:%d\n",i,V[i]);
}
} |
Est ce que qqun pourrait m'aider a resoudre ce probleme?
Merci d'avance