题目




答案
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)
该博客详细介绍了邻接表存储图的广度优先遍历算法,通过一个具体的代码实例展示了如何使用队列进行遍历,并强调理解数据类型间的关系以及队列操作的重要性。同时,提供了辅助图表帮助读者更好地理解概念。
&spm=1001.2101.3001.5002&articleId=115335702&d=1&t=3&u=b8a4dda4d4574c17bbd99fddee86529b)
844

被折叠的 条评论
为什么被折叠?



