1 solutions
-
0
C++ :
#include<iostream> #include<cstring> #include<cstdio> using namespace std; bool a[110][110]; bool flag[110]; int n,e; void init(); void dfs(int x); int main() { //freopen("dfs1.in","r",stdin); //freopen("dfs5.out","w",stdout); init(); dfs(1); return 0; } void init() { cin>>n>>e; memset(flag,0,sizeof(flag)); memset(a,0,sizeof(a)); int x,y; for(int i=1;i<=e;++i) { cin>>x>>y; a[x][y]=1;//无向图处理双向 a[y][x]=1; } } void dfs(int x) { cout<<x<<' '; flag[x]=1;//把遍历点设为已访问 for(int i=1;i<=n;++i) //寻找相邻连通的下一个节点 if(!flag[i]&&a[x][i]==1) dfs(i);//如果找到以这个节点接着遍历 }
- 1
Information
- ID
- 9994
- Time
- 1000ms
- Memory
- 128MiB
- Difficulty
- (None)
- Tags
- # Submissions
- 0
- Accepted
- 0
- Uploaded By