Files
Data-Structure/Exercise/Homework6/DFS.cpp
2025-11-27 13:40:37 +08:00

42 lines
711 B
C++

#include <iostream>
#include <vector>
#include <utility>
#include <algorithm>
using namespace std;
vector<vector<int>> adj;
vector<bool> visited;
void dfs(int u){
visited[u] = true;
cout << u << " ";
for(int v : adj[u]){
if(!visited[v]){
dfs(v);
}
}
}
int main() {
int n, m;
cin >> n >> m;
adj.resize(n);
visited.resize(n);
for (int i = 0; i < m; i++) {
int u, v;
cin >> u >> v;
adj[u].push_back(v);
}
for(int i = 0; i < n; i++) {
sort(adj[i].begin(), adj[i].end());
}
dfs(0);
for(int i = 0; i < n; i++) {
if(!visited[i]) {
dfs(i);
}
}
return 0;
}