BFS算法:
void BFS(MGraph &G,int n,VertexType v)
{
for(v=0;v<n;++v)
visited[v]=0;
for(v=0;v<n;++v)
if(!visited[v]) // v尚未访问
{
int u,j;
LinkQueue Q;
InitQueue(Q); // 置空的辅助队列Q
cout<<" "<<G.vexs[v];
visited[v]=1;
EnQueue(Q,v); // v入队列
while(!QueueEmpty(Q)) // 若Q非空
{
DeQueue(Q,u); // 队头元素出队,置为u
for(j=0;j<n;j++)
if((G.arcs[u][j]!=0)&&!visited[j])
{
visited[j]=1;
cout<<" "<<G.vexs[j];
EnQueue(Q,j);
}
} //while
} //if
}
长风秋雁
相关分类