BFS, DFS

김상윤·2022년 8월 18일
0

Algorithm

목록 보기
17/19
from collections import deque

n, m, v = [int(x) for x in input().split()]

graph = [[] for _ in range(n+1)]
for _ in range(m):
  a, b = [int(x) for x in input().split()]
  graph[a].append(b)
  graph[b].append(a)
for i in range(1,n+1):
  graph[i].sort()
  
def bfs(c):
  global vis
  asw = []
  q = deque()
  q.append(c)
  vis[c] = 1
  while q:
    c = q.popleft()
    asw.append(c)
    for a in graph[c]:
      if vis[a] == 0:
        q.append(a)
        vis[a] = 1
  return asw

def dfs(c):
  global vis, asw
  asw.append(c)
  vis[c] = 1
  for a in graph[c]:
    if vis[a]==0:
      dfs(a)
  return asw

vis = [0]*(n+1)
asw = []
print(*dfs(v))

vis = [0]*(n+1)
print(*bfs(v))

0개의 댓글

Powered by GraphCDN, the GraphQL CDN