cgy12306
[백준 BoJ] 1260 - DFS와 BFS 본문
#include<iostream>
#include<string.h>
#include<queue>
using namespace std;
int arr[1001][1001] = { 0, };
int visit[1001];
int n, m;
queue<int> q;
void dfs(int v) {
cout << v << " ";
visit[v] = 1;
for (int i = 1; i <= n; i++) {
if (arr[v][i] == 1 && visit[i] == 0) {
dfs(i);
}
}
return;
}
void bfs(int v) {
q.push(v);
visit[v] = 1;
while (!q.empty())
{
v = q.front();
visit[v] = 1;
cout << v << " ";
q.pop();
for (int i = 1; i <= n; i++) {
if (arr[v][i] == 1 && visit[i] == 0) {
q.push(i);
visit[i] = 1;
}
}
}
}
int main() {
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int v, x, y;
// n : 정점의 개수, m : 간선의 개수, v : 시작할 정점의 번호
cin >> n >> m >> v;
for (int i = 0; i < m; i++) {
cin >> x >> y;
arr[x][y] = 1;
arr[y][x] = 1;
}
dfs(v);
cout << "\n";
memset(visit, 0, sizeof(visit));
bfs(v);
}
'Algorithm > C++' 카테고리의 다른 글
[백준 BoJ] 11726 - 2xn 타일링 (0) | 2021.03.25 |
---|---|
[백준 BoJ] 1463 - 1로 만들기 (0) | 2021.03.25 |
[백준 BoJ] 9095 - 1, 2, 3 더하기 (0) | 2021.03.25 |
[백준 BoJ] 1476 - 날짜 계산 (0) | 2021.03.25 |
[백준 BoJ] 1551 - 수열의 변화 (0) | 2021.03.25 |
Comments