DFS,BFS 뼈대 코드
//DFS 뼈대코드
//스택을 이용
bool visited[N];
vector<int> graph[N];
void dfs(int x) {
visited[x] = true;
for (int i = 0; i < graph.size(), i++) {
int y = graph[x][i];
if (!visited[y])
dfs(y);
}
}
//BFS의 뼈대 코드
//Queue를 이용
#include <queue>
bool visited[N];
vector<int> graph[N];
void bfs(int start) {
queue<int> q;
q.push(start);
visited[start] = true;
while (!q.empty()) {
int x = q.front();
q.pop();
for (int i = 0; i < graph[x].size(); i++) {
int y = graph[x][i];
q.push(y);
visited[y] = true;
}
}
}
'알고리즘, 코테 준비' 카테고리의 다른 글
백준17413 - 단어 뒤집기 2 (0) | 2022.11.06 |
---|---|
분리집합(유니온 파인드) (0) | 2022.11.06 |
문자열 (1) | 2022.11.06 |
알고리즘 종류와 유형 (0) | 2022.11.06 |
백준 1174 - 줄어드는 수 (0) | 2022.10.11 |