DFS สำรวจกราฟโดยเดินลึกเท่าที่เป็นไปได้ตามแต่ละกิ่งก่อนที่จะย้อนกลับ โดยใช้ stack (มักจะผ่านการเรียกซ้ำ) และเยี่ยมชมเส้นทางเต็มก่อนสำรวจทางเลือก
ความคิด
จากโหนด ให้เรียกซ้ำเข้าไปในเพื่อนบ้านที่ยังไม่ได้เยี่ยมชม และเดินลึกต่อไป เมื่อติดขัด ให้ย้อนกลับและลองกิ่งอื่น
ตัวอย่าง
python
():
visited :
visited = ()
visited.add(node)
order = [node]
nbr graph[node]:
nbr visited:
order += dfs(graph, nbr, visited)
order
graph = {: [, ], : [], : [], : []}
dfs(graph, )
