DFS ایک گراف کو ہر برانچ کے ساتھ زیادہ سے زیادہ گہرائی میں جاتے ہوئے دریافت کرتا ہے اور پھر واپس آتا ہے۔ یہ ایک stack استعمال کرتا ہے (اکثر recursion کے ذریعے call stack) اور متبادل کو دریافت کرنے سے پہلے ایک مکمل راستہ وزٹ کرتا ہے۔
خیال
ایک نوڈ سے، ایک غیر ملاقات شدہ ہمسائے میں recursion کریں، اور گہرائی میں جاتے رہیں؛ جب پھنس جائیں، واپس اوپر آئیں اور دوسری برانچ کو آزمائیں۔
مثال
():
visited :
visited = ()
visited.add(node)
order = [node]
nbr graph[node]:
nbr visited:
order += dfs(graph, nbr, visited)
order
graph = {: [, ], : [], : [], : []}
dfs(graph, )
