Pseudo Code
Leçon 4 sur 9 du cours Parcours en profondeur - Algorithmes de graphes de Coddy.
buildAdjacency(n, edges):
adj = n empty lists
for each pair (u, v) in edges:
adj[u].add(v)
adj[v].add(u) # non orienté
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 liste d'adjacence transforme le tableau d'arêtes plat en une liste triée de ses voisins pour chaque sommet.
- L'ajout des voisins du dernier au premier permet à la pile de renvoyer le plus petit voisin en premier, afin que l'ordre de visite soit déterministe.
Essayez vous-même
Cette leçon ne comprend pas de défi de code.
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Parcours en profondeur - Algorithmes de graphes
2The Algorithm
How it works?Pseudo CodeImplementation (Part 1)Implementation (Part 2)