Menu
Coddy logo textTech

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.

quiz iconTestez-vous

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