Graph Search Methods
Graph Search Methods
is a path from v to u.
2
3
8
1
4
5
9
10
6
7 11
1
Graph Search Methods
• A search method starts at a given vertex v and
4
5
9
10
6
7 11
2
Graph Search Methods
• Many graph problems are solved using a
search method.
Path from one vertex to another.
Is the graph connected?
Find a spanning tree, etc.
3
Depth-First Search
dfs ( v )
{
Label vertex v as reached.
for (each unreached vertex u
adjacenct from v )
dfs( u );
}
4
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
6
Depth-First Search Example
2
3
8
1
4
5
9
10
6
7 11
7
Depth-First Search Example
2
3
8
1
4
5
9
10
6
7 11
8
Depth-First Search Example
2
3
8
1
4
5
9
10
6
7 11
4
5
9
10
6
7 11
4 or 7.
Suppose that vertex 4 is selected.
10
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
Return to 9.
12
Depth-First Search Example
2
3
8
1
4
5
9
10
6
7 11
Return to 5.
13
Depth-First Search Example
2
3
8
1
4
5
9
10
6
7 11
Do a dfs(3).
14
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
Return to 1.
16
Depth-First Search Example
2
3
8
1
4
5
9
10
6
7 11
17
Depth-First Search Property
18
Path From Vertex v To Vertex u
Start a depth-first search at vertex v.
Time
edges)
19
Is The Graph Connected?
Start a depth-first search at any vertex of
the graph.
Graph is connected iff all n vertices get
visited.
Time
O(n2) when adjacency matrix used
when adjacency lists used (e is
O(n+e)
number of edges)
20
Connected Components
21
22
Connected Components
2
3
8
1
4
5
9
10
6
7 11
23
Time Complexity
(e is number of edges)
24
Spanning Tree
2
3
8
1
4
5
9
6
7
26
Breadth-First Search
Visit start vertex and put into a FIFO
queue.
4
5
9
10
6
7 11
2 FIFO Queue
3
1
8 1
4
5
9
10
6
7 11
29
Breadth-First Search Example
2
3
FIFO Queue
8
1
1
4
5
9
10
6
7 11
2
3
8 FIFO Queue
1
2 4
4
5
9
10
6
7 11
2
3
8 FIFO Queue
1
2 4
4
5
9
10
6
7 11
2
3
8
FIFO Queue
1
4 5 3 6
4
5
9
10
6
7 11
2
3
8 FIFO Queue
1
4 5 3 6
4
5
9
10
6
7 11
2
3
1
8 FIFO Queue
5 3 6
4
5
9
10
6
7 11
2
3 FIFO Queue
8
1 5 3 6
4
5
9
10
6
7 11
2
3 FIFO Queue
8
1 3 6 9 7
4
5
9
10
6
7 11
2
3
8
FIFO Queue
1
36 97
4
5
9
10
6
7 11
2
3 FIFO Queue
8
1 6 9 7
4
5
9
10
6
7 11
2
3
8
FIFO Queue
1
6 9 7
4
5
9
10
6
7 11
40
Breadth-First Search Example
2
3 FIFO Queue
8 9 7
1
4
5
9
10
6
7 11
41
Breadth-First Search Example
2
3 FIFO Queue
8
1 9 7
4
5
9
10
6
7 11
42
Breadth-First Search Example
2 FIFO Queue
3
8 7 8
1
4
5
9
10
6
7 11
2
3 FIFO Queue
8
1 7 8
4
5
9
10
6
7 11
44
Breadth-First Search Example
2
3 FIFO Queue
8
1 8
4
5
9
10
6
7 11
45
Breadth-First Search Example
2
3
FIFO Queue
8
1 8
4
5
9
10
6
7 11
46
Breadth-First Search Example
2
3 FIFO Queue
8
1
4
5
9
10
6
7 11
49
Breadth-First Search Properties
Same complexity as dfs.
51