229
>Parcurgerea BF a unui graf
#include <stdio.h>
#include <conio.h>
int a[20][20],n,i,j,vf_init,coada[20],vizitat[20],vf_curent,prim,ultim;
/*
n - nr de varfuri
vf_init - varful initial
prim/ultim - primul/ultimul element din coada
*/
void citire()
{
FILE *f=fopen("C:date.txt","r");
fscanf(f,"%d",&n);
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
fscanf(f,"%d",&a[i][j]);
printf("Dati varful initial");
scanf("%d",&vf_init);
}
void initializare()
{
for(i=1;i<=n;i++) vizitat[i]=0;
prim=1;
ultim=1;
coada[1]=vf_init;
vizitat[vf_init]=1;
}
void main()
{
citire();
initializare();
while (prim<=ultim)
{
vf_curent=coada[prim];
for(i=1;i<=n;i++)
if ((a[vf_curent][i]==1)&&(vizitat[i]==0))
{
ultim++;
coada[ultim]=i;
vizitat[i]=1;
}
prim++;
}
for(i=1;i<=n;i++) printf(" %d ",coada[i]);
getch();
}