알고리즘 공부/트리&그래프

그래프 - DFS와 BFS의 구현(Pseudocode)

CastleMouse 2022. 1. 3. 01:17

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);                 //다음에 다시 오게 큐에 저장해놓읍시다.

            }

        }

    }

}