题目
答案
void BFS ( LGraph Graph, Vertex S, void (*Visit)(Vertex) )
{
int queue[1000],f=0,r=0;
queue[r++]=S;
Visited[S]=1;
Visit(S);
PtrToAdjVNode temp;
while(f!=r)
{
temp=Graph->G[queue[f++]].FirstEdge;
while(temp)
{
int x=temp->AdjV;
if(!Visited[x])
{
Visited[x]=1;
Visit(x);
queue[r++]=x;
}
temp=temp->Next;
}
}
}
注意
- 本题要搞清楚各个数据类型之间的关系,我画了张图供大家参考
2.要熟练运用好队列的头指针(f)以及尾指针(r)