BFS - pyohamen/TIL GitHub Wiki

Breadth First Search

from collections import deque

def bfs(graph,start,visited):

	# 미리 visited λ§Œλ“¦
    bfs_visited = []

    # μˆ˜ν–‰, λ°©λ¬Έν‘œμ‹œ
    print(start, end=' ')
    visited.append(start)
    # μ‹œμž‘μ μ˜ μΈμ ‘λ…Έλ“œ 큐에 μ‚½μž…
    q = dequq()
    # μΈμ ‘λ…Έλ“œκ°€ 볡수라면, extend 둜 μΈμ ‘λ…Έλ“œλ“€μ„ q에 μΆ”κ°€ν•˜λŠ”κ²Œ λ‚˜μŒ
    q.extend(graph[start])
    
    while queue:
    	# νμ—μ„œ 꺼냄
        v = queue.popleft()
        # κΊΌλƒˆλŠ”λ° λ°©λ¬Έ μ•ˆ λ˜μ–΄ 있으면
        if v not in visited:
        	# μˆ˜ν–‰
            print(v, end=' ')
            # λ°©λ¬Έν‘œμ‹œ
            visited.append(v)
            # 큐에 μΈμ ‘λ…Έλ“œ μΆ”κ°€
            q.extend(graph[v])

graph = [
    [],
    [2,3,8],
    [1,7],
    [1,4,5],
    [3,5],
    [3,4],
    [7],
    [2,6,8],
    [1,7]
]

bfs(graph,1)