Pseudo Code
Lección 4 de 9 del curso Búsqueda en profundidad - Algoritmos de grafos de Coddy.
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- La lista de adyacencia convierte el arreglo de aristas plano en, para cada vértice, la lista ordenada de sus vecinos.
- Insertar los vecinos del último al primero hace que la pila devuelva primero el vecino más pequeño, por lo que el orden de visita es determinista.
Pruébalo tú mismo
Esta lección no incluye un desafío de código.
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Búsqueda en profundidad - Algoritmos de grafos
2The Algorithm
How it works?Pseudo CodeImplementation (Part 1)Implementation (Part 2)