void BFS(ALGraph *G,int i)
{
visited[i]=TRUE;
int w[10];
int z=0,x=0;
printf(" %d",i);
w[z++]=i;
while(z!=x)
{
int c;
c=w[x++];
ArcNode *q = G->vertices[c].firstarc;
while(q)
{
if(!visited[q->adjvex])
{
printf(" %d",q->adjvex);
w[z++]=q->adjvex;
visited[q->adjvex]=TRUE;
}
q=q->nextarc;
}
}
}
void BFS_AL(ALGraph *G,int i)
{
BFS(G,i);
int g;
for(g=0;g<G->vexnum;g++)
{
if(visited[g]==FALSE)
BFS(G,g);
}
}