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 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
| /*--------------------------------------------------------------
--procedure bfs
--------------------------------------------------------------*/
void procedure_bfs (sommet pivot, File * file)
{
int res_file, vide, v_ordre, vide_1;
sommet x;
File * successeurs;
printf("fonction procedure");
res_file = enfiler(file, pivot);
if(res_file == 1){
pivot.marque = 1;
vide = est_vide(file);
while(vide == 1){
pivot = defiler(file);
ordre = ordre + 1;
v_ordre = ordre;
successeurs = remplir_succ(pivot); //renvoie les successeurs de pivot
vide_1 = est_vide(successeurs);
while( vide_1 == 1 ){
x = defiler(successeurs);
if(x.marque == 0){
enfiler(file, x);
x.marque = 1;
vide_1 = est_vide(successeurs);
}
}
}
}
}
/*----------------------------------------------------------
--fonction BFS
-----------------------------------------------------------*/
void fonction_bfs( sommet tableau[])
{
sommet pivot;
File *file;
int i;
printf("fonction bfs\n");
for(i = 0; i < nbr_sommet; i ++){
pivot = tableau[i];
pivot.marque = 0;
}
printf("fin marque \n");
file = creer_file();
for(i = 0; i < nbr_sommet; i ++)
pivot = tableau[i];
if(pivot.marque == 0){
procedure_bfs(pivot, file);
}
}
} |
Partager