1. 程式人生 > >[圖]深搜判斷圖的連通性

[圖]深搜判斷圖的連通性

#include<stdio.h>

int N, M;
int visited[20] = {0};
int G[20][20]; 
int edge = 0;
void DFS(int i)
{
	if(visited[i] != 0) return;
	else
	{
		visited[i] = 1;
		for(int j = 1; j <= N; j ++)
			if(G[i][j] == 1 && visited[j] == 0) 
					DFS(j), edge ++;
	}
}

int main()
{
	int i, v1, v2;
	scanf("%d%d", &N, &M);
	for(i = 1; i <= M; i ++)
	{
		scanf("%d%d", &v1, &v2);
		G[v1][v2] = G[v2][v1] = 1;
	}
	DFS(1);
	if(edge == M) printf("Yes.");
	else printf("No.");
	return 0;
}