dfs definition code example
Example 1: DFS explained
Initialize an empty stack for storage of nodes, S.
For each vertex u, define u.visited to be false.
Push the root (first node to be visited) onto S.
While S is not empty:
Pop the first element in S, u.
If u.visited = false, then:
U.visited = true
for each unvisited neighbor w of u:
Push w into S.
End process when all nodes have been visited.
Example 2: DFS explained
def depth_first_search(graph):
visited, stack = set(), [root]
while stack:
vertex = stack.pop()
if vertex not in visited:
visited.add(vertex)
stack.extend(graph[vertex] - visited)
return visited