#include <bits/stdc++.h>
#define N 10001
using namespace std;
struct Edge {
int x, y, z, next;
Edge(int x = 0, int y = 0, int z = 0, int next = 0) :
x(x), y(y), z(z), next(next) {}
} edge[N * 2];
bool vis[N];
int head[N], sumedge;
int n, m;
void dfs(int x, int p) {
printf("%d ", x);
vis[x] = true;
for (int u = head[x]; u; u = edge[u].next) {
if (!vis[edge[u].y] && edge[u].z && edge[u].y != p) {
dfs(edge[u].y ,x);
}
}
}
void ins(int x, int y) {
edge[++sumedge] = Edge(x, y, 1, head[x]);
head[x] = sumedge;
return;
}
int main() {
scanf("%d%d", &n, &m);
for (int i = 1; i <= m; i++) {
int x, y;
scanf("%d%d", &x, &y);
ins(x, y);
}
dfs(1, -1);
}
深度优先搜索
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 这是两种常用的搜索方式,但是应用不同。 广度优先搜索,在与搜索一个节点到另一个节点的最短距离。深得优先搜索则侧重图...
- 两种遍历 图的遍历分为深度优先搜索(Depth First Search)和广度优先搜索 深度优先搜索(DFS) ...
- 深度优先搜索算法(Depth-First-Search)深度优先搜索算法(Depth-First-Search),...