Lecture-03 DFS (Class Date 9 Feb 2019)
Lecture-03 DFS (Class Date 9 Feb 2019)
Graph Theory
Graph Searching
Given: a graph G = (V, E), directed or undirected
Goal: methodically explore every vertex and every edge
Ultimately: build a tree on the graph
Pick a vertex as the root
Choose certain edges to produce a tree
Note: might also build a forest if graph is not connected
Graph Traversals
Ways to traverse/search a graph
Visit every vertex exactly once
Breadth-First Search
Depth-First Search
Depth-First Search
Depth-first search is another strategy for exploring a graph
Explore “deeper” in the graph whenever possible
B C D
DFS Example
source
vertex
d f E G
S 1 | | |
F
| |
A
| | |
B C D
S
DFS Example
source
vertex
d f E G
S 1 | | |
F
2 | |
A
| | |
B C D A
S
DFS Example
source
vertex
d f E G
S 1 | | |
F
2 | |
A
3 | | | B
B C D A
S
DFS Example
source
vertex
d f E G
S 1 | | |
F
2 | |
A
3 | 4 | |
B C D A
S
DFS Example
source
vertex
d f E G
S 1 | | |
F
2 | |
A
3 | 4 5 | |
C
B C D A
S
DFS Example
source
vertex
d f E G
S 1 | | |
F
2 | |
A
3 | 4 5 | 6 |
B C D A
S
DFS Example
source
vertex
d f E G
S 1 | | |
F
2 | 7 |
A
3 | 4 5 | 6 |
B C D
S
DFS Example
source
vertex
d f E G
S 1 | 8 | |
F
2 | 7 |
A
3 | 4 5 | 6 |
B C D E
S
DFS Example
source
vertex
d f E G
S 1 | 8 | |
F
2 | 7 9 |
A
3 | 4 5 | 6 | F
B C D E
S
DFS Example
source
vertex
d f E G
S 1 | 8 | |
F
2 | 7 9 |10
A
3 | 4 5 | 6 |
B C D E
S
DFS Example
source
vertex
d f E G
S 1 | 8 |11 |
F
2 | 7 9 |10
A
3 | 4 5 | 6 |
B C D
S
DFS Example
source
vertex
d f E G
S 1 |12 8 |11 |
F
2 | 7 9 |10
A
3 | 4 5 | 6 |
B C D
Running Time of DFS
initialization takes O(V) time
second for loop in non-recursive wrapper considers each
vertex, so O(V) iterations
one recursive call is made for each vertex
in recursive call for vertex u, all its neighbors are checked;
total time in all recursive calls is O(E)
Total time is O(V+E)
DFS Exercise
F C
A
source
vertex
B D
H
G E
Thank You