Description
一个有n个节点的连通图,这些节点以编号:1、2、……n进行编号,现给出节点间的连接关系。请以节点1为起点,按dfs的顺序遍历并输出该图。n<100
Input Format
第一行为两整数,n和e,表示n个顶点,e条边
以下e行每行两个数,表示两个节点是联通的
Output Format
只有一行,为节点的dfs顺序
Sample
样例输入
5 7
1 2
1 3
1 4
2 4
2 5
3 5
4 5
样例输出
1 2 4 5 3
代码:
#include<bits/stdc++.h>
using namespace std;
int a[105][105];
bool f[105];
int n,e;//n顶点,e边
void dfs(int x)
{
cout<<x<<" ";
f[x]=1;
for(int i=1;i<=n;i++){
if(a[x][i]==1&&!f[i]){
dfs(i);
f[i] = 1;
}
}
}
int main(){
cin>>n>>e;
int x,y;
for(int i=1;i<=e;i++){
cin>>x>>y;
a[x][y]=a[y][x]=1;
}
dfs(1);
}
运行结果: