Breadth-First Search(BFS)

BY Jung·2022년 1월 2일
1
post-custom-banner

특징

  • 너비 우선 탐색: 그래프에서 가까운 노드부터 우선적으로 탐색
  • 큐 자료구조 이용
  • 최단 경로 문제해결에 효과적

  • 각 정점 방문 때마다 모든 인접 정점들을 검사
  • 처음 보는 정점 발견 시 방문 예정 으로 기록
  • 인접한 모든 정점 모두 검사하고 나면, 기록된 목록에서 다음 정점을 꺼내서 방문

동작 예시 및 파이썬 소스 코드

from collections import deque

def bfs(graph, start, visited):
	queue = deque([start])
    visited[start] = True 	# 현재 노드 방문처리
    
    while queue: 		# 큐가 빌 때까지 반복
    	v = queue.popleft()	# 큐에서 원소 뽑아 출력
        print(v, end=' ')
        
        for i in graph[v]:	# 아직 방문하지 않은 원소들 큐에 삽입
        	if not visited[i]
            	queue.append(i)
                visited[i] = True

References

profile
Slow and steady wins the race
post-custom-banner

0개의 댓글