11.1 너비 우선 탐색(인접 행렬) 구현

제일 먼저 인접 행렬로 너비 우선 탐색을 구현해 보아요.

그래프와 Heuristic에 관한 코드는 10.3.3 깊이 우선 탐색(인접 행렬) 코드와 같으니 참고하세요.

먼저 깊이 우선 탐색하는 순서를 이해하기 쉽게 구현한 코드를 구현합시다.방향성 없는 그래프와 인접 행렬

먼저 그래프를 생성하고 간선을 추가하세요.

너비 우선 탐색은 큐를 이용합니다.

초기 경험 정보를 생성하여 큐에 보관하세요.

큐가 빌 때까지 반복합니다.

큐에서 경험 정보를 꺼내오세요.

목적지에 도달하였는지 찾는 중인지 출력하세요.

만약 최단 거리를 찾았을 때 더 이상 작업을 진행하기 원하지 않는다면 반복문 탈출하는 구문을 사용하는 형태로 수정하세요. 여기에서는 큐가 빌 때까지 전수 조사하기로 할게요.

현재까지 방문한 경로를 출력하세요.

EnumNext 메서드에서는 현재 경험의 마지막 방문한 정점에서 경험하지 않은 이웃 정점을 추가 방문하는 다음 경험을 생성하여 반환하는 작업을 수행합니다.

조사한 다음 경험 목록을 큐에 보관하세요.

더 이상 필요없는 경험을 소멸하세요.

▷ 실행 결과

다음은 현재 경험에서 다음 경험을 조사한 후에 바로 목적지에 도달하였는지 확인하는 형태로 코드를 수행한 예제입니다.

다음 경험 목록을 순차적으로 순회하며 목적지에 도달하였는지 확인합니다.

▷ 실행 결과