void bfs(int start) {
queue<int> q;
q.push(start);
visit[start] = true;
while (!q.empty()) {
int x = q.front();
q.pop();
printf("%d ", x);
for (int i = 1; i <= n; i++) {
if (!visit[i]&&a[x][i]) {
q.push(i);
visit[i] = true;
}
}
}
}
void dfs(int idx) {
visited[v] = true;
printf("%d ", idx);
for (int i = 1; i <= n; i++) {
if (a[idx][i] && !visited[i]) {
visited[i] = true;
dfs(i);
}
}
}
DFS와 BFS에 대해서 공부중이다.
기본적인 구조는 이해했지만, 앞으로 관련 문제 풀이를 보면서 알고리즘 사용방법을 체득해야될것 같다.
'Algorithm' 카테고리의 다른 글
백준 9095번 1 2 3 더하기 (0) | 2020.03.04 |
---|---|
백준 9465 스티커 (0) | 2020.03.04 |
백준 6588번 골드바흐의 추측 (0) | 2020.03.02 |
백준 2579 계단오르기 (0) | 2020.03.02 |
백준 2920 음계 (0) | 2020.03.01 |