#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),...