Menu
CoddyTech

伪代码

Coddy 深度优先搜索:图算法 课程的第 4 课,共 9 课。

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
  • 邻接表会将扁平的边数组转换为每个顶点对应的邻居排序列表。
  • 按从后到前的顺序压入邻居,会让栈先返回最小的邻居,因此访问顺序是确定的。

亲手试试

这节课没有代码挑战。

quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

深度优先搜索:图算法中的所有课

自己练习: C 在线编译器