DFS meneroka sesuatu graf dengan pergi sedalam mungkin di sepanjang setiap cabang sebelum berundur (backtrack). Ia menggunakan stack (selalunya call stack melalui recursion) dan melawat satu laluan penuh sebelum meneroka pilihan lain.
Ideanya
Dari sesuatu nod, recurse ke jiran yang belum dilawati, dan terus pergi mendalam; apabila tersekat, undur dan cuba cabang lain.
Contoh
python
():
visited :
visited = ()
visited.add(node)
order = [node]
nbr graph[node]:
nbr visited:
order += dfs(graph, nbr, visited)
order
graph = {: [, ], : [], : [], : []}
dfs(graph, )
