如图是无回路的连通图,或者有n个顶点,且有n-1条边,一次遍历即可访问所以点,此图就是树 。
#include<stdio.h>
#include<stdlib.h>
#define N 100
typedef int ElemType;
int n;
int a[N][N],vis[N],cnt;
void dfs(int pos){ //如图有n个顶点,且有n-1条边,一次遍历即可访问所以点,此图就是树
vis[pos]=1;
cnt++;
int i;
for(i=1;i<=n;i++){
if(a[pos][i]&&vis[i]==0){
dfs(i);
}
}
}
int main()
{
int i,j,m;
scanf("%d %d",&n,&m);
for(i=1;i<=m;i++){
int x,y;
scanf("%d %d",&x,&y);
a[x][y]=a[y][x]=1;
}
dfs(1);
if(m==n-1&&cnt==n){
puts("yes");
}
else{
puts("no");
}
return 0;
}