为了账号安全,请及时绑定邮箱和手机立即绑定

求助,我的程序不知哪出了问题

求助,我的程序不知哪出了问题

青春有我 2022-08-05 10:06:54
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); // 置空的辅助队列Qcout<<" "<<G.vexs[v];visited[v]=1;EnQueue(Q,v); // v入队列while(!QueueEmpty(Q)) // 若Q非空{DeQueue(Q,u); // 队头元素出队,置为ufor(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}
查看完整描述

1 回答

?
长风秋雁

TA贡献1757条经验 获得超7个赞

void BFS(MGraph &G,int n,VertexType v)
{
for(v=0;v<n;++v)
visited[v]=0;

// 怎么看都觉得下面的for有问题,仔细想想什么叫图的广度遍历
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
}


查看完整回答
反对 回复 2022-08-08
  • 1 回答
  • 0 关注
  • 165 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号