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.
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
2The Algorithm
How it works?Pseudo CodeImplementation (Part 1)Implementation (Part 2)