Menu
Coddy logo textTech

Pseudocodice

Lezione 4 di 9 del corso Ricerca in profondità - Algoritmi su grafi di 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 di adiacenza trasforma l’array piatto di archi nella lista ordinata dei vicini di ciascun vertice.
  • Inserire i vicini dall’ultimo al primo fa sì che lo stack restituisca per primo il vicino più piccolo, rendendo deterministico l’ordine di visita.

Provalo tu

Questa lezione non include una sfida di codice.

quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Ricerca in profondità - Algoritmi su grafi

Esercitati da solo: Compilatore C online