#include<stdio.h>
int e[101][101],book[101],i,sum,j,n,m;
void dfs(int cur) //cur是当前所在的顶点编号
{
printf("%d ",cur);
sum++; //没访问一个顶点,sum就加1
if(sum == n) return; //所有的顶点都已经访问过则直接退出
for(i=1;i<=n;i++)
{
if(e[cur][i] == 1 && book[i] == 0)
{
book[i]=1; //标记顶点i已经访问过了
dfs(i);
}
}
return;
}
int main()
{
int a,b;
scanf("%d %d",&n,&m);
//初始化二维矩阵
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(i == j) e[i][j]=0;
else e[i][j]=99999999;
//读入顶点之间的边
for(i=1;i<=m;i++)
{
scanf("%d %d",&a,&b);
e[a][b]=1;
e[b][a]=1;
}
book[1]=1;
dfs(1);
return 0;
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。