핵심 가까운 노드부터 차례대로 탐색합니다.
큐를 사용하며, 최단 거리 탐색의 기본이 됩니다.
그래프 연결 관계: A → B, C / B → D, E / C → F / E → G
시작 노드:
속도
A
B
C
D
E
F
G
BFS 준비 완료
초기 큐: [A]
방문: A
B를 큐에 추가 → 현재 큐: [B]
C를 큐에 추가 → 현재 큐: [B, C]
방문: B
D를 큐에 추가 → 현재 큐: [C, D]
E를 큐에 추가 → 현재 큐: [C, D, E]
방문: C
F를 큐에 추가 → 현재 큐: [D, E, F]
방문: D
방문: E
G를 큐에 추가 → 현재 큐: [F, G]
방문: F
방문: G
BFS 탐색 종료
from collections import deque
graph = {
"A": ["B", "C"],
"B": ["D", "E"],
"C": ["F"],
"D": [],
"E": ["G"],
"F": [],
"G": []
}
queue = deque(["A"])
while queue:
node = queue.popleft()
print(node)
for next_node in graph[node]:
queue.append(next_node)