Pseudo Code
Lektion 4 von 9 im Kurs Tiefensuche - Graph-Algorithmen von Coddy.
buildAdjacency(n, edges):
adj = n empty lists
for each pair (u, v) in edges:
adj[u].add(v)
adj[v].add(u) # ungerichtet
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- Die Adjazenzliste wandelt das flache Kanten-Array für jeden Knoten in eine sortierte Liste seiner Nachbarn um.
- Das Hinzufügen der Nachbarn von hinten nach vorne (last-to-first) bewirkt, dass der Stack den kleinsten Nachbarn zuerst zurückgibt, sodass die Reihenfolge des Besuchs deterministisch ist.
Probier es selbst
Diese Lektion enthält keine Programmieraufgabe.
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Tiefensuche - Graph-Algorithmen
2The Algorithm
How it works?Pseudo CodeImplementation (Part 1)Implementation (Part 2)