/*
判断无向图G是否连通。
若连通返回1,否则返回0
*/
#define size 6
#include <stdio.h>
//测试 邻接矩阵(用邻接矩阵 表示图)
int a[size][size] =
{
0,1,0,0,0,0,
1,0,1,0,0,0,
0,1,0,1,0,0,
0,0,1,0,1,0,
0,0,0,1,0,1,
0,0,0,0,1,0,
};//无向图:0->1->2->3->4->5
int visited[size] = { 0 };//访问标识数组
void DFS(int v) {//深度优先遍历
visited[v] = 1;
for (int i = 0; i < size; i++) {
if (a[v][i] != 0 && visited[i] == 0) {
DFS(i);
}
}
}
bool judgement(int v){//判断是否连通,即判断访问数组是否全为1
DFS(v);
for (int i = 0; i < size; i++) {
if (visited[i] == 0)
{
return false;
}
}
return true;
}
int main()
{
if (judgement(0)==true)
printf("连通!");
else
printf("不连通!");
return 0;
}
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交