Menu
CoddyTech

Kode semu

Pelajaran 4 dari 9 dalam kursus Depth-First Search: Algoritma Graf 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
  • Daftar adjacency mengubah array edge yang datar menjadi daftar tetangga yang terurut untuk setiap vertex.
  • Memasukkan tetangga dari urutan terakhir ke pertama membuat stack mengeluarkan tetangga terkecil terlebih dahulu, sehingga urutan kunjungan bersifat deterministik.

Coba sendiri

Pelajaran ini tidak memiliki tantangan kode.

quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Depth-First Search: Algoritma Graf

Latihan sendiri: Compiler C online