连通图
题目链接:连通图
题目描述
判断一个图是否为一个边通图
输入格式
输入一个数n(n<=100)表示顶点数,下面每行输入两个整数,表示一条边的两个顶点,输入两个0表示结束。
输出格式
1 表示连通
0 表示不边通
输入输出样例
输入
5
1 2
2 3
5 4
0 0
输出
0
解题思路
这道题可以用DFS也可以用BFS,这里作者用的是DFS
参考程序
#include<iostream>
using namespace std;
int a[110][110],b[110],n;
void dfs(int dep)
{
if(b[dep])
return;
b[dep]=1;
for(int i=1;i<=n;i++)
if(a[dep][i])
{
dfs(i);
}
}
int main()
{
cin>>n;
int x,y;
cin>>x>>y;
while(x||y)
{
a[x][y]=1;
a[y][x]=1;
cin>>x>>y;
}
dfs(1);
for(int i=1;i<=n;i++)
if(!b[i])
{
cout<<0<<endl;
return 0;
}
cout<<1<<endl;
return 0;
}