只有一行,包含n个整数,表示按照题目描述中的深度优先遍历算法遍历整个图的访问顶点顺序。每个整数后输出一个空格,并请注意行尾输出换行。
4 0 1 0 1 1 0 0 0 0 0 0 1 1 0 1 0
0 1 3 2
#include <bits/stdc++.h> using namespace std; typedef long long ll; int a[55][55]; int vis[55]; int n; void dfs(int t) { vis[t]=1; printf("%d ",t); for(int i=0;i<n;i++) { if(a[t][i]==1&&vis[i]==0) dfs(i); } } int main() { while(~scanf("%d",&n)) { memset(vis,0,sizeof(vis)); for(int i=0;i<n;i++) { for(int j=0;j<n;j++) scanf("%d",&a[i][j]); } for(int i=0;i<n;i++) { if(vis[i]==0) dfs(i); } printf("\n"); } return 0; }
原文:https://www.cnblogs.com/cuiiiii/p/13215839.html