DFS ਇੱਕ ਗ੍ਰਾਫ ਦੀ ਖੋਜ ਕਰਦਾ ਹੈ ਜਦੋਂ ਤੱਕ ਹਰ ਸ਼ਾਖਾ ਦੀ ਗਹਿਰਾਈ ਵਿੱਚ ਨਹੀਂ ਜਾ ਜਾਂਦਾ ਫਿਰ ਪਿਛਲੀ ਸਥਿਤੀ ਵਿੱਚ ਆਉਂਦਾ ਹੈ। ਇਹ stack (ਆਮ ਤੌਰ 'ਤੇ recursion ਰਾਹੀਂ call stack) ਵਰਤਦਾ ਹੈ ਅਤੇ ਵਿਕਲਪਾਂ ਦੀ ਖੋਜ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਪੂਰਾ ਮਾਰਗ ਵਿਖਿਆ ਕਰਦਾ ਹੈ।
ਆਈਡੀਆ
ਇੱਕ ਨੋਡ ਤੋਂ, ਇੱਕ ਅਣਵਿਖੇ ਗੁਆਂਢੀ ਵਿੱਚ ਪੁਨਰ ਕਾਲ ਕਰੋ, ਅਤੇ ਗਹਿਰਾਈ ਵਿੱਚ ਜਾਓ; ਜਦੋਂ ਫਸ ਜਾਓ, ਪਿਛਲੀ ਸਥਿਤੀ ਵਿੱਚ ਜਾਓ ਅਤੇ ਦੂਸਰੀ ਸ਼ਾਖਾ ਦੀ ਕੋਸ਼ਿਸ ਕਰੋ।
ਉਦਾਹਰਨ
():
visited :
visited = ()
visited.add(node)
order = [node]
nbr graph[node]:
nbr visited:
order += dfs(graph, nbr, visited)
order
graph = {: [, ], : [], : [], : []}
dfs(graph, )
