Skip to content

Commit 84cd614

Browse files
authored
Update DFS.cpp
1 parent 1056c9f commit 84cd614

File tree

1 file changed

+31
-15
lines changed

1 file changed

+31
-15
lines changed

DFS.cpp

+31-15
Original file line numberDiff line numberDiff line change
@@ -9,24 +9,40 @@
99
#include <bits/stdc++.h>
1010
using namespace std;
1111

12-
int n, e, u, v;
13-
vector <vector<int> > g;
14-
vector <bool> vis;
15-
16-
void dfs_visit(int u) {
17-
vis[u] = 1;
18-
printf("%d ", u);
19-
for (int v = 0; v < g[u].size(); v++)
20-
if (!vis[g[u][v]]) dfs_visit(g[u][v]);
12+
const int mx = 1e5;
13+
14+
bool vis[mx];
15+
vector <int> graph[mx];
16+
17+
void dfs(int u) {
18+
cout << u << " ";
19+
vis[u] = true;
20+
21+
for (int i = 0; i < graph[u].size(); i++) {
22+
int v = graph[u][i];
23+
if (!vis[v]) {
24+
dfs(v);
25+
}
26+
}
2127
}
2228

2329
int main() {
24-
scanf("%d %d", &n, &e);
25-
vis.assign(n, 0);
26-
g.assign(n, vector<int>());
27-
while (e--) scanf("%d %d", &u, &v), g[u].push_back(v), g[v].push_back(u);
28-
for (int i = 0; i < n; i++) if (!vis[i]) dfs_visit(i);
29-
puts("");
30+
// freopen("in", "r", stdin);
31+
32+
int node, edge, u, v;
33+
cin >> node >> edge;
34+
while (edge--) {
35+
cin >> u >> v;
36+
graph[u].push_back(v);
37+
graph[v].push_back(u);
38+
}
39+
for (int i = 0; i < node; i++) {
40+
if (!vis[i]) {
41+
dfs(i);
42+
}
43+
}
44+
cout << "\n";
45+
return 0;
3046
}
3147

3248
/******************

0 commit comments

Comments
 (0)