BOJ 1260 BFS와 DFS c++
백준 1260 BFS와 DFS c++
#include <bits/stdc++.h>
using namespace std;
int v, e, start;
vector<int> adj[1005];
bool vis[1005];
void dfs(int cur) { //cur은 방문한 adj[]의 index
cout << cur << ' ';
for (int i = 0; i < adj[cur].size(); i++) {
int nxt = adj[cur][i];
if (vis[nxt])
continue;
vis[nxt] = true;
dfs(nxt);
}
}
void bfs() {
queue<int> Q;
Q.push(start);
vis[start] = true;
while (!Q.empty()) {
int cur = Q.front();
Q.pop();
cout << cur << ' ';
for (int i = 0; i < adj[cur].size(); i++) {
int nxt = adj[cur][i];
if (vis[nxt])
continue;
Q.push(nxt);
vis[nxt] = true;
}
}
}
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
int a, b;
cin >> v >> e >> start;
while (e--) {
cin >> a >> b;
adj[a].push_back(b);
adj[b].push_back(a);
}
for (int i = 1; i <= v; i++)
sort(adj[i].begin(), adj[i].end());
vis[start] = true;
dfs(start);
cout << '\n';
fill(vis, vis + v + 1, false);
bfs();
}
분류 : 그래프 - BFS, DFS
'Algorithm' 카테고리의 다른 글
BOJ 10807 개수 세기 c++ (0) | 2020.08.14 |
---|---|
BOJ 1406 c++ 에디터 (0) | 2020.07.27 |
BOJ 11724 c++ 연결 요소의 개수 (0) | 2020.07.22 |
C++ 이진 탐색 STL binary_search, upper_bound, lower_bound (0) | 2020.07.18 |
BOJ 10816 c++ (0) | 2020.07.18 |
최근댓글