Depth-First Search (DFS)

Explores as far as possible along each branch before backtracking.

A
B
C
D
E
F
G

Stack

Empty
Status: Ready
Speed

Algorithm Logic

1function dfs(start):
2 stack = [start]
3 visited = set()
4 while stack:
5 curr = stack.pop()
6 if curr not in visited:
7 visit(curr)
8 visited.add(curr)
9 for neighbor in reverse(adj[curr]):
10 if neighbor not in visited:
11 stack.push(neighbor)