Menu
Coddy logo textTech

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.

quiz iconTeste dich selbst

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