SMALL
알고리즘 분류: dfs, bfs
코드:
#include <iostream>
#include <queue>
using namespace std;
int N, M, V;
int map[1001][1001];
bool visited[1001];
queue<int> q;
void reset() {
for (int i = 1; i <= N; i++) {
visited[i] = 0;
}
}
void DFS(int v) {
visited[v] = true;
cout << v << " ";
for (int i = 1; i <= N; i++) {
if (map[v][i] == 1 && visited[i] == 0) {
DFS(i);
}
}
}
void BFS(int v) {
q.push(v);
visited[v] = true;
cout << v << " ";
while (!q.empty()) {
v = q.front();
q.pop();
for (int w = 1; w <= N; w++) {
if (map[v][w] == 1 && visited[w] == 0) {
q.push(w);
visited[w] = true;
cout << w << " ";
}
}
}
}
int main() {
cin >> N >> M >> V;
for (int i = 0; i < M; i++) {
int a, b;
cin >> a >> b;
map[a][b] = 1;
map[b][a] = 1;
}
reset();
DFS(V);
cout << '\n';
reset();
BFS(V);
return 0;
}
LIST
'BOJ 문제풀이' 카테고리의 다른 글
백준 2606 c++ 풀이 (0) | 2021.07.20 |
---|---|
백준 2667번 c++ 풀이 (0) | 2021.07.20 |
백준 2981 c++ 풀이 (0) | 2021.07.20 |
백준 9613번 c++ 풀이 (0) | 2021.07.18 |
백준 1934 c++ 풀이 (0) | 2021.07.18 |