Graph Traversal
Graph Traversal
2
3
8
1
4
5
9
10
6
7 11
Graph Search Methods
• A search method starts at a given vertex v and
visits/labels/marks every vertex that is reachable
from v.
2
3
8
1
4
5
9
10
6
7 11
Graph Search Methods
• Many graph problems solved using a search
method.
Path from one vertex to another.
Is the graph connected?
Find a spanning tree.
Etc.
• Commonly used search methods:
Depth-first search.
Breadth-first search.
Depth-First Search
dfs(v)
{
Label vertex v as reached.
for (each unreached vertex u
adjacenct from v)
dfs(u);
}
Depth-First Search Example
2
3
8
1
4
5
9
10
6
7 11
4
5
9
10
6
7 11
4
5
9
10
6
7 11
4
5
9
10
6
7 11
4
5
9
10
6
7 11
4
5
9
10
6
7 11
4
5
9
10
6
7 11
4
5
9
10
6
7 11
4
5
9
10
6
7 11
Return to 5.
Depth-First Search Example
2
3
8
1
4
5
9
10
6
7 11
Do a dfs(3).
Depth-First Search Example
2
3
8
1
4
5
9
10
6
7 11
4
5
9
10
6
7 11
Return to 1.
Depth-First Search Example
2
3
8
1
4
5
9
10
6
7 11
2
3
8
1
4
5
9
10
6
7 11
Time Complexity
O(n2) when adjacency matrix used
O(n+e) when adjacency lists used (e
is number of edges)
Breadth-First Search
2
3
8
1
4
5
9
10
6
7 11
2
3
FIFO Queue
8
1 1
4
5
9
10
6
7 11
2
3
FIFO Queue
8
1 1
4
5
9
10
6
7 11
2
3
FIFO Queue
8 2 4
1
4
5
9
10
6
7 11
2
3
FIFO Queue
8 2 4
1
4
5
9
10
6
7 11
2
3
FIFO Queue
8 4 5 3 6
1
4
5
9
10
6
7 11
2
3
FIFO Queue
8 4 5 3 6
1
4
5
9
10
6
7 11
2
3
FIFO Queue
8 5 3 6
1
4
5
9
10
6
7 11
2
3
FIFO Queue
8 5 3 6
1
4
5
9
10
6
7 11
2
3
FIFO Queue
8 3 6 9 7
1
4
5
9
10
6
7 11
2
3
FIFO Queue
8 3 6 9 7
1
4
5
9
10
6
7 11
2
3
FIFO Queue
8 6 9 7
1
4
5
9
10
6
7 11
2
3
FIFO Queue
8 6 9 7
1
4
5
9
10
6
7 11
2
3
FIFO Queue
8 9 7
1
4
5
9
10
6
7 11
2
3
FIFO Queue
8 9 7
1
4
5
9
10
6
7 11
2
3
FIFO Queue
8 7 8
1
4
5
9
10
6
7 11
2
3
FIFO Queue
8 7 8
1
4
5
9
10
6
7 11
2
3
FIFO Queue
8 8
1
4
5
9
10
6
7 11
2
3
FIFO Queue
8 8
1
4
5
9
10
6
7 11
2
3
FIFO Queue
8
1
4
5
9
10
6
7 11