Menu
Coddy logo textTech

Pseudo Code

Coddy의 깊이 우선 탐색 - 그래프 알고리즘 코스 레슨 — 9개 중 4번째.

buildAdjacency(n, edges):
   adj = n empty lists
   for each pair (u, v) in edges:
      adj[u].add(v)
      adj[v].add(u)         # undirected
   sort every adj[i] ascending

dfs(n, edges, start):
   build adjacency
   visited = all false
   stack = [start]
   order = []
   while stack not empty:
      node = stack.pop()
      if visited[node]: continue
      visited[node] = true
      order.add(node)
      for nb in adj[node] from last to first:
         if not visited[nb]: stack.push(nb)
   return order
  • 인접 리스트는 평면적인 간선 배열을 각 정점에 대해 정렬된 이웃 리스트로 변환합니다.
  • 이웃들을 마지막부터 처음 순서로(last-to-first) 스택에 넣으면 스택이 가장 작은 이웃을 먼저 반환하게 되어 방문 순서가 결정론적으로 유지됩니다.

직접 해보기

이 레슨에는 코드 챌린지가 없습니다.

quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

깊이 우선 탐색 - 그래프 알고리즘의 모든 레슨