计算无向图中连通块的数目

来源:互联网 发布:淘宝属于腾讯软件吗 编辑:程序博客网 时间:2024/06/11 20:08
/*计算无向图中连通块的数目*/#include <iostream>#include <stdlib.h>#include <vector>#include <memory.h>using namespace std;struct Node{    int destNum;    int dest[100];   }node[1000];int visit[1000];int n,m;bool ok;void DFS(int v){   if(visit[v] == 0)   {      visit[v] = 1;      ok = true;      for(int i = 0; i<node[v].destNum; i++)      {           DFS(node[v].dest[i]);              }   }       }int main(){    while(cin >> n >> m)    {       ok = false;       memset(visit, 0, sizeof(visit));       memset(node, 0, sizeof(node));       for(int i=1; i<= m; i++)       {          int start, end;          cin >> start >> end;          node[start].dest[node[start].destNum++]= end;           node[end].dest[node[end].destNum++]= start;               }       int connectNum = 0;       for(int i=1; i<=n; i++)       {          ok = false;           DFS(i);          if(ok)          {            connectNum++;               }           }       cout << connectNum << endl;                   }       system("pause");    return 0;}

原创粉丝点击