void dfs(int s)
{
mark[s]=true;
for(int i=1;i<=n;i++)
if(G[s][i]&&!mark[i])//有边(s,i),且顶点i未标记
dfs(i);
}
for(int i=1;i<=n;i++)
{
if(!mark[i])
{
dfs(i);
ans++;
}
}
无向图的连通分量
最新推荐文章于 2022-02-05 13:45:50 发布
void dfs(int s)
{
mark[s]=true;
for(int i=1;i<=n;i++)
if(G[s][i]&&!mark[i])//有边(s,i),且顶点i未标记
dfs(i);
}
for(int i=1;i<=n;i++)
{
if(!mark[i])
{
dfs(i);
ans++;
}
}