CS/Python

파이썬으로 DFS, BFS 구현하기

munsik22 2025. 4. 1. 13:00
def DFS(v):
    visited[v] = True
    print(v, end = " ")
    for node in adj[v]:
        if not visited[node]:
            DFS(node)

n = 5
adj = [[],
       [2,3],
       [1,4,5],
       [1,4],
       [2,3],
       [2]
       ]

visited = [False] * (n+1)
print("DFS 탐색 순서 : ", end = "")
DFS(1)

from collections import deque
def BFS(s):
    visited[s] = True
    queue = deque()
    queue.append(s)

    while queue:
        v = queue.popleft()
        print(v, end=" ")
        for node in adj[v]:
            if not visited[node]:
                visited[node] = True
                queue.append(node)

visited = [False] * (n+1)
print("\nBFS 탐색 순서 : ", end = "")
BFS(1)

# 실행 결과 :
# DFS 탐색 순서 : 1 2 4 3 5 
# BFS 탐색 순서 : 1 2 3 4 5