Data Structures & Algorithms Notes Page


Depth First Search:

What is it:

Logical Steps:

  1. Start at a source node
  2. Mark it as visited
  3. Recursively visit all of its unvisited neighboring nodes
  4. Backtrack when we hit a dead end

Depth First Search with a Stack:

wfs(s)
{
	push s into stack
	while bag isnt empty
		pop v from bag
		for each (v, w) in G dp
			if w is unmarked
				mark w
				push w into bag
}

// Recursively

dfs(v)
{
	if v is unmarked
		mark v
		
		for each(v, w) in G do:
			dfs(w)
}

image.png