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

用dfs求连通块问题

用dfs求连通块问题

C C++
0云川0 2018-05-14 22:35:58
如题,求教dfs的用法,最好求大佬们详细讲一下dfs的思想谢谢?
查看完整描述

2 回答

已采纳
?
慕容3039970

TA贡献1条经验 获得超0个赞

对于无向图来说DFS深度搜索 递归思想

//深度优先搜索DFS的一般实现void DFS(MGraph G,int i)//DFS递归思想
{    int j;
    visited[i]=TRUE;//设置Node已经被访问
    printf("%c",G.vexs[i]);    for(j=0;j<numVertexes;j++)//对此Node跟Node2(j)遍历 如果arc[][]==1则表明当前DFS的Node与Node2(j)连通,且满足Node2未被访问的条件下 则对Node2进行DFS    if(G.arc[i][j]==1&&!visited[j])
    DFS(G,j)
}void DFSTraverse(MGraph G)
{    int i;    for(i=0;i<numvertexes;i++)//将所有Node设置成未访问
    visited[i]==FALSE;    for(i=0;i<numvertexes;i++)//从头到尾 对每个Node进行DFS调用    if(!visited[i])//(如果在前面的for循环之中 Node节点已经被访问到 则不进行DFS搜索 )
     DFS(G,i);
 }


查看完整回答
反对 回复 2018-05-15
  • 2 回答
  • 0 关注
  • 1966 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信