그래프 - DFS와 BFS의 구현(Pseudocode)
DFS와 BFS의 Pseudocode이다.
DFS
void dfs(int idx) {
/* 여기에다 현재 방문한 vertex에 대해 해주고 싶은것 이것저것 하세요~~ */
for (a = adjacent of idx) { //모든 인접 노드들에 대하여
if (!visited[a]) { //탐색 안했으면
visited[a] = true; //이번 vertex 방문표시
dfs(a); //들어갑시다~
}
}
}
BFS
void bfs(int start) {
queue.push(start); //시작 vertex 방문 및 큐에 넣기.
visited[start] = true;
while (queue에 원소가 있음) {
idx = q.front(); //큐에서 원소 하나 빼오기.
q.pop();
/* 여기에다 현재 방문한 vertex에 대해 해주고 싶은것 이것저것 하세요~~ */
for (a = adjacent of idx) { //모든 인접 노드들에 대하여
if (!visited[a]) { //탐색 안했으면
visited[a] = true; //방문 체크해두고
queue.push(a); //다음에 다시 오게 큐에 저장해놓읍시다.
}
}
}
}