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.
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