Menu
Coddy logo textTech

Pseudo Code

Lição 4 de 9 do curso Busca em Profundidade - Algoritmos de Grafos da Coddy.

buildAdjacency(n, edges):
   adj = n empty lists
   for each pair (u, v) in edges:
      adj[u].add(v)
      adj[v].add(u)         # não direcionado
   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
  • A lista de adjacência transforma o array de arestas plano em, para cada vértice, a lista ordenada de seus vizinhos.
  • Empilhar os vizinhos do último para o primeiro faz com que a pilha retorne o menor vizinho primeiro, para que a ordem de visita seja determinística.

Experimente você mesmo

Esta lição não inclui um desafio de código.

quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Busca em Profundidade - Algoritmos de Grafos