data structures and algorithms ver. 1.0 session 17 objectives in this session, you will learn to:...
TRANSCRIPT
![Page 1: Data Structures and Algorithms Ver. 1.0 Session 17 Objectives In this session, you will learn to: Implement a graph Apply graphs to solve programming problems](https://reader035.vdocuments.us/reader035/viewer/2022062517/56649ef65503460f94c09a65/html5/thumbnails/1.jpg)
Data Structures and Algorithms
Ver. 1.0 Session 17
Objectives
In this session, you will learn to:Implement a graph
Apply graphs to solve programming problems
![Page 2: Data Structures and Algorithms Ver. 1.0 Session 17 Objectives In this session, you will learn to: Implement a graph Apply graphs to solve programming problems](https://reader035.vdocuments.us/reader035/viewer/2022062517/56649ef65503460f94c09a65/html5/thumbnails/2.jpg)
Data Structures and Algorithms
Ver. 1.0 Session 17
To implement a graph, you need to first represent the given information in the form of a graph.
The two most commonly used ways of representing a graph are as follows:
Adjacency Matrix
Adjacency List
Representing a Graph
![Page 3: Data Structures and Algorithms Ver. 1.0 Session 17 Objectives In this session, you will learn to: Implement a graph Apply graphs to solve programming problems](https://reader035.vdocuments.us/reader035/viewer/2022062517/56649ef65503460f94c09a65/html5/thumbnails/3.jpg)
Data Structures and Algorithms
Ver. 1.0 Session 17
Consider the following
graph:
Adjacency Matrix
Adjacency Matrix Representation
v1 v2 v3 v4
v1 0 1 0 0
v2 0 0 1 0
v3 0 0 0 0
v4 1 0 1 0
![Page 4: Data Structures and Algorithms Ver. 1.0 Session 17 Objectives In this session, you will learn to: Implement a graph Apply graphs to solve programming problems](https://reader035.vdocuments.us/reader035/viewer/2022062517/56649ef65503460f94c09a65/html5/thumbnails/4.jpg)
Data Structures and Algorithms
Ver. 1.0 Session 17
Consider the following
graph:
Adjacency List
Adjacency List Representation
![Page 5: Data Structures and Algorithms Ver. 1.0 Session 17 Objectives In this session, you will learn to: Implement a graph Apply graphs to solve programming problems](https://reader035.vdocuments.us/reader035/viewer/2022062517/56649ef65503460f94c09a65/html5/thumbnails/5.jpg)
Data Structures and Algorithms
Ver. 1.0 Session 17
Traversing a graph means visiting all the vertices in a graph.
You can traverse a graph with the help of the following two methods:
Depth First Search (DFS)
Breadth First Search (BFS)
Traversing a Graph
![Page 6: Data Structures and Algorithms Ver. 1.0 Session 17 Objectives In this session, you will learn to: Implement a graph Apply graphs to solve programming problems](https://reader035.vdocuments.us/reader035/viewer/2022062517/56649ef65503460f94c09a65/html5/thumbnails/6.jpg)
Data Structures and Algorithms
Ver. 1.0 Session 17
Algorithm: DFS(v)1. Push the starting vertex, v into the stack.
2. Repeat until the stack becomes empty:
DFS
a. Pop a vertex from the stack.
b. Visit the popped vertex.
c. Push all the unvisited vertices adjacent to the popped vertex into the stack.
![Page 7: Data Structures and Algorithms Ver. 1.0 Session 17 Objectives In this session, you will learn to: Implement a graph Apply graphs to solve programming problems](https://reader035.vdocuments.us/reader035/viewer/2022062517/56649ef65503460f94c09a65/html5/thumbnails/7.jpg)
Data Structures and Algorithms
Ver. 1.0 Session 17
DFS (Contd.)
v1
Push the starting vertex, v1 into the stack
![Page 8: Data Structures and Algorithms Ver. 1.0 Session 17 Objectives In this session, you will learn to: Implement a graph Apply graphs to solve programming problems](https://reader035.vdocuments.us/reader035/viewer/2022062517/56649ef65503460f94c09a65/html5/thumbnails/8.jpg)
Data Structures and Algorithms
Ver. 1.0 Session 17
DFS (Contd.)
v1
Pop a vertex, v1 from the stack
Visit v1
Push all unvisited vertices adjacent to v1 into the stack
v1
Visited:
![Page 9: Data Structures and Algorithms Ver. 1.0 Session 17 Objectives In this session, you will learn to: Implement a graph Apply graphs to solve programming problems](https://reader035.vdocuments.us/reader035/viewer/2022062517/56649ef65503460f94c09a65/html5/thumbnails/9.jpg)
Data Structures and Algorithms
Ver. 1.0 Session 17
DFS (Contd.)
v4
Pop a vertex, v1 from the stack
Visit v1
Push all unvisited vertices adjacent to v1 into the stack
v1
Visited:
v2
![Page 10: Data Structures and Algorithms Ver. 1.0 Session 17 Objectives In this session, you will learn to: Implement a graph Apply graphs to solve programming problems](https://reader035.vdocuments.us/reader035/viewer/2022062517/56649ef65503460f94c09a65/html5/thumbnails/10.jpg)
Data Structures and Algorithms
Ver. 1.0 Session 17
DFS (Contd.)
Visited:
Pop a vertex, v2 from the stack
Visit v2
Push all unvisited vertices adjacent to v2 into the stack
v1 v2
v4
v2
![Page 11: Data Structures and Algorithms Ver. 1.0 Session 17 Objectives In this session, you will learn to: Implement a graph Apply graphs to solve programming problems](https://reader035.vdocuments.us/reader035/viewer/2022062517/56649ef65503460f94c09a65/html5/thumbnails/11.jpg)
Data Structures and Algorithms
Ver. 1.0 Session 17
DFS (Contd.)
Visited:
Pop a vertex, v2 from the stack
Visit v2
Push all unvisited vertices adjacent to v2 into the stack
v1 v2
v3
v6
v4
![Page 12: Data Structures and Algorithms Ver. 1.0 Session 17 Objectives In this session, you will learn to: Implement a graph Apply graphs to solve programming problems](https://reader035.vdocuments.us/reader035/viewer/2022062517/56649ef65503460f94c09a65/html5/thumbnails/12.jpg)
Data Structures and Algorithms
Ver. 1.0 Session 17
DFS (Contd.)
Visited:
Pop a vertex, v6 from the stack
Visit v6
Push all unvisited vertices adjacent to v6 into the stack
v1 v2 v6
There are no unvisited vertices adjacent to v6
v3
v6
v4
![Page 13: Data Structures and Algorithms Ver. 1.0 Session 17 Objectives In this session, you will learn to: Implement a graph Apply graphs to solve programming problems](https://reader035.vdocuments.us/reader035/viewer/2022062517/56649ef65503460f94c09a65/html5/thumbnails/13.jpg)
Data Structures and Algorithms
Ver. 1.0 Session 17
DFS (Contd.)
Visited:
Pop a vertex, v3 from the stack
Visit v3
Push all unvisited vertices adjacent to v3 into the stack
v1 v2 v6 v3
v3
v4
![Page 14: Data Structures and Algorithms Ver. 1.0 Session 17 Objectives In this session, you will learn to: Implement a graph Apply graphs to solve programming problems](https://reader035.vdocuments.us/reader035/viewer/2022062517/56649ef65503460f94c09a65/html5/thumbnails/14.jpg)
Data Structures and Algorithms
Ver. 1.0 Session 17
DFS (Contd.)
Visited:
Pop a vertex, v3 from the stack
Visit v3
Push all unvisited vertices adjacent to v3 into the stack
v1 v2
v5
v6 v3
v4
![Page 15: Data Structures and Algorithms Ver. 1.0 Session 17 Objectives In this session, you will learn to: Implement a graph Apply graphs to solve programming problems](https://reader035.vdocuments.us/reader035/viewer/2022062517/56649ef65503460f94c09a65/html5/thumbnails/15.jpg)
Data Structures and Algorithms
Ver. 1.0 Session 17
DFS (Contd.)
Visited:
Pop a vertex, v5 from the stack
Visit v5
Push all unvisited vertices adjacent to v5 into the stack
v1 v2 v6 v3 v5
There are no unvisited vertices adjacent to v5
v5
v4
![Page 16: Data Structures and Algorithms Ver. 1.0 Session 17 Objectives In this session, you will learn to: Implement a graph Apply graphs to solve programming problems](https://reader035.vdocuments.us/reader035/viewer/2022062517/56649ef65503460f94c09a65/html5/thumbnails/16.jpg)
Data Structures and Algorithms
Ver. 1.0 Session 17
DFS (Contd.)
Visited:
Pop a vertex, v4 from the stack
Visit v4
Push all unvisited vertices adjacent to v4 into the stack
v1 v2 v6 v3 v5
There are no unvisited vertices adjacent to v4
v4
v4
![Page 17: Data Structures and Algorithms Ver. 1.0 Session 17 Objectives In this session, you will learn to: Implement a graph Apply graphs to solve programming problems](https://reader035.vdocuments.us/reader035/viewer/2022062517/56649ef65503460f94c09a65/html5/thumbnails/17.jpg)
Data Structures and Algorithms
Ver. 1.0 Session 17
DFS (Contd.)
Visited:
The stack is now empty
Therefore, traversal is complete
v1 v2 v6 v3 v5 v4
![Page 18: Data Structures and Algorithms Ver. 1.0 Session 17 Objectives In this session, you will learn to: Implement a graph Apply graphs to solve programming problems](https://reader035.vdocuments.us/reader035/viewer/2022062517/56649ef65503460f94c09a65/html5/thumbnails/18.jpg)
Data Structures and Algorithms
Ver. 1.0 Session 17
DFS (Contd.)
Although the preceding algorithm provides a simple and convenient method to traverse a graph, the algorithm will not work correctly if the graph is not connected.
In such a case, you will not be able to traverse all the vertices from one single starting vertex.
![Page 19: Data Structures and Algorithms Ver. 1.0 Session 17 Objectives In this session, you will learn to: Implement a graph Apply graphs to solve programming problems](https://reader035.vdocuments.us/reader035/viewer/2022062517/56649ef65503460f94c09a65/html5/thumbnails/19.jpg)
Data Structures and Algorithms
Ver. 1.0 Session 17
DFS (Contd.)
To solve this problem, you need to execute the preceding algorithm repeatedly for all unvisited vertices in the graph.
1. Repeat step 2 for each vertex, v in the graph
2. If v is not visited: a. Call DFS(v)
![Page 20: Data Structures and Algorithms Ver. 1.0 Session 17 Objectives In this session, you will learn to: Implement a graph Apply graphs to solve programming problems](https://reader035.vdocuments.us/reader035/viewer/2022062517/56649ef65503460f94c09a65/html5/thumbnails/20.jpg)
Data Structures and Algorithms
Ver. 1.0 Session 17
Algorithm: BFS(v)1. Visit the starting vertex, v and insert it into a queue.
2. Repeat step 3 until the queue becomes empty.
3. Delete the front vertex from the queue, visit all its unvisited adjacent vertices, and insert them into the queue.
BFS
![Page 21: Data Structures and Algorithms Ver. 1.0 Session 17 Objectives In this session, you will learn to: Implement a graph Apply graphs to solve programming problems](https://reader035.vdocuments.us/reader035/viewer/2022062517/56649ef65503460f94c09a65/html5/thumbnails/21.jpg)
Data Structures and Algorithms
Ver. 1.0 Session 17
BFS (Contd.)
Visit v1
Insert v1 into the queue
v1
v1
![Page 22: Data Structures and Algorithms Ver. 1.0 Session 17 Objectives In this session, you will learn to: Implement a graph Apply graphs to solve programming problems](https://reader035.vdocuments.us/reader035/viewer/2022062517/56649ef65503460f94c09a65/html5/thumbnails/22.jpg)
Data Structures and Algorithms
Ver. 1.0 Session 17
BFS (Contd.)
Remove a vertex v1 from the queue
Visit all unvisited vertices adjacent to v1 and insert them in the queue
v1
v1
Visited:
![Page 23: Data Structures and Algorithms Ver. 1.0 Session 17 Objectives In this session, you will learn to: Implement a graph Apply graphs to solve programming problems](https://reader035.vdocuments.us/reader035/viewer/2022062517/56649ef65503460f94c09a65/html5/thumbnails/23.jpg)
Data Structures and Algorithms
Ver. 1.0 Session 17
BFS (Contd.)
Remove a vertex v1 from the queue
Visit all unvisited vertices adjacent to v1 and insert them in the queue
v2
v1 v2 v4
v4
![Page 24: Data Structures and Algorithms Ver. 1.0 Session 17 Objectives In this session, you will learn to: Implement a graph Apply graphs to solve programming problems](https://reader035.vdocuments.us/reader035/viewer/2022062517/56649ef65503460f94c09a65/html5/thumbnails/24.jpg)
Data Structures and Algorithms
Ver. 1.0 Session 17
BFS (Contd.)
Remove a vertex v2 from the queue
Visit all unvisited vertices adjacent to v2 and insert them in the queue
v2
v1 v2 v4
v4
![Page 25: Data Structures and Algorithms Ver. 1.0 Session 17 Objectives In this session, you will learn to: Implement a graph Apply graphs to solve programming problems](https://reader035.vdocuments.us/reader035/viewer/2022062517/56649ef65503460f94c09a65/html5/thumbnails/25.jpg)
Data Structures and Algorithms
Ver. 1.0 Session 17
BFS (Contd.)
Remove a vertex v2 from the queue
Visit all unvisited vertices adjacent to v2 and insert them in the queue
v1 v2 v4
v4
v3
v3
v6
v6
![Page 26: Data Structures and Algorithms Ver. 1.0 Session 17 Objectives In this session, you will learn to: Implement a graph Apply graphs to solve programming problems](https://reader035.vdocuments.us/reader035/viewer/2022062517/56649ef65503460f94c09a65/html5/thumbnails/26.jpg)
Data Structures and Algorithms
Ver. 1.0 Session 17
BFS (Contd.)
Remove a vertex v4 from the queue
Visit all unvisited vertices adjacent to v4 and insert them in the queue
v1 v2 v4
v4
v3
v3
v6
v6
v5
v5
![Page 27: Data Structures and Algorithms Ver. 1.0 Session 17 Objectives In this session, you will learn to: Implement a graph Apply graphs to solve programming problems](https://reader035.vdocuments.us/reader035/viewer/2022062517/56649ef65503460f94c09a65/html5/thumbnails/27.jpg)
Data Structures and Algorithms
Ver. 1.0 Session 17
BFS (Contd.)
Remove a vertex v3 from the queue
Visit all unvisited vertices adjacent to v3 and insert them in the queue
v1 v2 v4 v3
v3
v6
v6
v5
v5
v3 does not have any unvisited adjacent vertices
![Page 28: Data Structures and Algorithms Ver. 1.0 Session 17 Objectives In this session, you will learn to: Implement a graph Apply graphs to solve programming problems](https://reader035.vdocuments.us/reader035/viewer/2022062517/56649ef65503460f94c09a65/html5/thumbnails/28.jpg)
Data Structures and Algorithms
Ver. 1.0 Session 17
BFS (Contd.)
Remove a vertex v6 from the queue
Visit all unvisited vertices adjacent to v6 and insert them in the queue
v1 v2 v4 v3 v6
v6
v5
v5
v3 does not have any unvisited adjacent vertices
![Page 29: Data Structures and Algorithms Ver. 1.0 Session 17 Objectives In this session, you will learn to: Implement a graph Apply graphs to solve programming problems](https://reader035.vdocuments.us/reader035/viewer/2022062517/56649ef65503460f94c09a65/html5/thumbnails/29.jpg)
Data Structures and Algorithms
Ver. 1.0 Session 17
BFS (Contd.)
Remove a vertex v6 from the queue
Visit all unvisited vertices adjacent to v6 and insert them in the queue
v1 v2 v4 v3 v6 v5
v5
v6 does not have any unvisited adjacent vertices
![Page 30: Data Structures and Algorithms Ver. 1.0 Session 17 Objectives In this session, you will learn to: Implement a graph Apply graphs to solve programming problems](https://reader035.vdocuments.us/reader035/viewer/2022062517/56649ef65503460f94c09a65/html5/thumbnails/30.jpg)
Data Structures and Algorithms
Ver. 1.0 Session 17
BFS (Contd.)
Remove a vertex v5 from the queue
Visit all unvisited vertices adjacent to v5 and insert them in the queue
v1 v2 v4 v3 v6 v5
v5
v6 does not have any unvisited adjacent vertices
![Page 31: Data Structures and Algorithms Ver. 1.0 Session 17 Objectives In this session, you will learn to: Implement a graph Apply graphs to solve programming problems](https://reader035.vdocuments.us/reader035/viewer/2022062517/56649ef65503460f94c09a65/html5/thumbnails/31.jpg)
Data Structures and Algorithms
Ver. 1.0 Session 17
BFS (Contd.)
Remove a vertex v5 from the queue
Visit all unvisited vertices adjacent to v5 and insert them in the queue
v1 v2 v4 v3 v6 v5
v5 does not have any unvisited adjacent vertices
![Page 32: Data Structures and Algorithms Ver. 1.0 Session 17 Objectives In this session, you will learn to: Implement a graph Apply graphs to solve programming problems](https://reader035.vdocuments.us/reader035/viewer/2022062517/56649ef65503460f94c09a65/html5/thumbnails/32.jpg)
Data Structures and Algorithms
Ver. 1.0 Session 17
BFS (Contd.)
The queue is now empty
Therefore, traversal is complete
v1 v2 v4 v3 v6 v5
v5 does not have any unvisited adjacent vertices
![Page 33: Data Structures and Algorithms Ver. 1.0 Session 17 Objectives In this session, you will learn to: Implement a graph Apply graphs to solve programming problems](https://reader035.vdocuments.us/reader035/viewer/2022062517/56649ef65503460f94c09a65/html5/thumbnails/33.jpg)
Data Structures and Algorithms
Ver. 1.0 Session 17
BFS (Contd.)
Although the preceding algorithm provides a simple and convenient method to traverse a graph, the algorithm will not work correctly if the graph is not connected.
In such a case, you will not be able to traverse all the vertices from one single starting vertex.
![Page 34: Data Structures and Algorithms Ver. 1.0 Session 17 Objectives In this session, you will learn to: Implement a graph Apply graphs to solve programming problems](https://reader035.vdocuments.us/reader035/viewer/2022062517/56649ef65503460f94c09a65/html5/thumbnails/34.jpg)
Data Structures and Algorithms
Ver. 1.0 Session 17
BFS (Contd.)
To solve this problem, you need to execute the preceding algorithm repeatedly for all unvisited vertices in the graph.
1. Repeat step 2 for each vertex, v in the graph
2. If v is not visited: a. Call BFS(v)
![Page 35: Data Structures and Algorithms Ver. 1.0 Session 17 Objectives In this session, you will learn to: Implement a graph Apply graphs to solve programming problems](https://reader035.vdocuments.us/reader035/viewer/2022062517/56649ef65503460f94c09a65/html5/thumbnails/35.jpg)
Data Structures and Algorithms
Ver. 1.0 Session 17
Problem Statement:You have to represent a set of cities and the distances between them in the form of a graph. Write a program to represent the graph in the form of an adjacency matrix.
Activity: Implementing a Graph by Using Adjacency Matrix Representation
![Page 36: Data Structures and Algorithms Ver. 1.0 Session 17 Objectives In this session, you will learn to: Implement a graph Apply graphs to solve programming problems](https://reader035.vdocuments.us/reader035/viewer/2022062517/56649ef65503460f94c09a65/html5/thumbnails/36.jpg)
Data Structures and Algorithms
Ver. 1.0 Session 17
Many problems can be easily solved by reducing them in the form of a graph
Graph theory has been instrumental in analyzing and solving problems in areas as diverse as computer network design, urban planning, finding shortest paths and molecular biology.
Applications of Graphs
![Page 37: Data Structures and Algorithms Ver. 1.0 Session 17 Objectives In this session, you will learn to: Implement a graph Apply graphs to solve programming problems](https://reader035.vdocuments.us/reader035/viewer/2022062517/56649ef65503460f94c09a65/html5/thumbnails/37.jpg)
Data Structures and Algorithms
Ver. 1.0 Session 17
Solving the Shortest Path Problem
The shortest path problem can be solved by applying the Dijkstra’s algorithm on a graph
The Dijkstra’s algorithm is based on the greedy approach
The steps in the Dijkstra’s algorithm are as follows: 1. Choose vertex v corresponding to the smallest distance
recorded in the DISTANCE array such that v is not already in
FINAL.
2. Add v to FINAL.
3. Repeat for each vertex w in the graph that is not in FINAL: a. If the path from v1 to w via v is shorter than the previously
recorded distance from v1 to w (If ((DISTANCE[v] + weight of
edge(v,w)) < DISTANCE[w])): i. Set DISTANCE[w]=DISTANCE[v] + weight of edge(v,w).
4. If FINAL does not contain all the vertices, go to step 1.
![Page 38: Data Structures and Algorithms Ver. 1.0 Session 17 Objectives In this session, you will learn to: Implement a graph Apply graphs to solve programming problems](https://reader035.vdocuments.us/reader035/viewer/2022062517/56649ef65503460f94c09a65/html5/thumbnails/38.jpg)
Data Structures and Algorithms
Ver. 1.0 Session 17
Solving the Shortest Path Problem (Contd.)
5
2
3 4 6
3
36
DISTANCE
v1 v2 v3 v4 v5 v6
FINAL
0 ∞ 3 ∞ ∞5
v1
Suppose you need to find the shortest distance of all the vertices from vertex v1.
Add v1 to the FINAL array.
![Page 39: Data Structures and Algorithms Ver. 1.0 Session 17 Objectives In this session, you will learn to: Implement a graph Apply graphs to solve programming problems](https://reader035.vdocuments.us/reader035/viewer/2022062517/56649ef65503460f94c09a65/html5/thumbnails/39.jpg)
Data Structures and Algorithms
Ver. 1.0 Session 17
5
2
3 4 6
3
36
v1 v2 v3 v4 v5 v6
0 ∞ 3 ∞ ∞5
v1
In the DISTANCE array, vertex v4 has the shortest distance from vertex v1.
Therefore, v4 is added to the FINAL array.
v4
Solving the Shortest Path Problem (Contd.)
DISTANCE
FINAL
![Page 40: Data Structures and Algorithms Ver. 1.0 Session 17 Objectives In this session, you will learn to: Implement a graph Apply graphs to solve programming problems](https://reader035.vdocuments.us/reader035/viewer/2022062517/56649ef65503460f94c09a65/html5/thumbnails/40.jpg)
Data Structures and Algorithms
Ver. 1.0 Session 17
5
2
3 4 6
3
36
v1 v2 v3 v4 v5 v6
0 ∞ 3 ∞ ∞5
v1 v4
v1 → v2 = 5
v1 → v4 → v2 = 3 + ∞ = ∞
∞ > 5
Therefore, no change is made.
Solving the Shortest Path Problem (Contd.)
DISTANCE
FINAL
![Page 41: Data Structures and Algorithms Ver. 1.0 Session 17 Objectives In this session, you will learn to: Implement a graph Apply graphs to solve programming problems](https://reader035.vdocuments.us/reader035/viewer/2022062517/56649ef65503460f94c09a65/html5/thumbnails/41.jpg)
Data Structures and Algorithms
Ver. 1.0 Session 17
5
5
2
3 4 6
3
36
v1 v2 v3 v4 v5 v6
0 ∞ 3 ∞ ∞5
v1 v4
Therefore, the entry corresponding to v3 in the DISTANCE array is changed to 5.
v1 → v3 = ∞
v1 → v4 → v3 = 3 + 2 = 5
5 < ∞
Solving the Shortest Path Problem (Contd.)
DISTANCE
FINAL
![Page 42: Data Structures and Algorithms Ver. 1.0 Session 17 Objectives In this session, you will learn to: Implement a graph Apply graphs to solve programming problems](https://reader035.vdocuments.us/reader035/viewer/2022062517/56649ef65503460f94c09a65/html5/thumbnails/42.jpg)
Data Structures and Algorithms
Ver. 1.0 Session 17
∞9
5
2
3 4 6
3
36
v1 v2 v3 v4 v5 v6
0 3 ∞5
v1 v4
5
v1 → v5 = ∞
v1 → v4 → v5 = 3 + 6 = 9
9 < ∞
Therefore, the entry corresponding to v5 in the DISTANCE array is changed to 9.
Solving the Shortest Path Problem (Contd.)
DISTANCE
FINAL
![Page 43: Data Structures and Algorithms Ver. 1.0 Session 17 Objectives In this session, you will learn to: Implement a graph Apply graphs to solve programming problems](https://reader035.vdocuments.us/reader035/viewer/2022062517/56649ef65503460f94c09a65/html5/thumbnails/43.jpg)
Data Structures and Algorithms
Ver. 1.0 Session 17
5
2
3 4 6
3
36
v1 v2 v3 v4 v5 v6
0 3 ∞5
v1 v4
5 9
Both the values are equal.
Therefore, no change is made.
v1 → v6 = ∞
v1 → v4 → v6 = 3 + ∞ = ∞
PASS 1 complete
Solving the Shortest Path Problem (Contd.)
DISTANCE
FINAL
![Page 44: Data Structures and Algorithms Ver. 1.0 Session 17 Objectives In this session, you will learn to: Implement a graph Apply graphs to solve programming problems](https://reader035.vdocuments.us/reader035/viewer/2022062517/56649ef65503460f94c09a65/html5/thumbnails/44.jpg)
Data Structures and Algorithms
Ver. 1.0 Session 17
5
2
3 4 6
3
36
v1 v2 v3 v4 v5 v6
0 3 ∞5
v1 v4
5 9
From the DISTANCE array, select the vertex with the shortest distance from v1, such that the selected vertex is not in the FINAL array.
v2 and v3 have the shortest and the same distance from v1.
Let us select v2 and add it to the FINAL array.
v2
Solving the Shortest Path Problem (Contd.)
DISTANCE
FINAL
![Page 45: Data Structures and Algorithms Ver. 1.0 Session 17 Objectives In this session, you will learn to: Implement a graph Apply graphs to solve programming problems](https://reader035.vdocuments.us/reader035/viewer/2022062517/56649ef65503460f94c09a65/html5/thumbnails/45.jpg)
Data Structures and Algorithms
Ver. 1.0 Session 17
5
2
3 4 6
3
36
v1 v2 v3 v4 v5 v6
0 3 ∞5
v1 v4
5 9
v2
v1 → v3 = 5
v1 → v2 → v3 = 5 + 4 = 9
9 > 5
Therefore, no change is made.
Solving the Shortest Path Problem (Contd.)
DISTANCE
FINAL
![Page 46: Data Structures and Algorithms Ver. 1.0 Session 17 Objectives In this session, you will learn to: Implement a graph Apply graphs to solve programming problems](https://reader035.vdocuments.us/reader035/viewer/2022062517/56649ef65503460f94c09a65/html5/thumbnails/46.jpg)
Data Structures and Algorithms
Ver. 1.0 Session 17
5
2
3 4 6
3
36
v1 v2 v3 v4 v5 v6
0 3 ∞5
v1 v4
5 9
v2
v1 → v5 = 9
v1 → v2 → v5 = 5 + ∞ = ∞
∞ > 9
Therefore, no change is made.
Solving the Shortest Path Problem (Contd.)
DISTANCE
FINAL
![Page 47: Data Structures and Algorithms Ver. 1.0 Session 17 Objectives In this session, you will learn to: Implement a graph Apply graphs to solve programming problems](https://reader035.vdocuments.us/reader035/viewer/2022062517/56649ef65503460f94c09a65/html5/thumbnails/47.jpg)
Data Structures and Algorithms
Ver. 1.0 Session 17
∞11
5
2
3 4 6
3
36
v1 v2 v3 v4 v5 v6
0 35
v1 v4
5 9
v2
v1 → v6 = ∞
v1 → v2 → v6 = 5 + 6 = 11
11 < ∞
Therefore, the entry corresponding to v6 in the DISTANCE array is changed to 11.
Pass 2 complete
Solving the Shortest Path Problem (Contd.)
DISTANCE
FINAL
![Page 48: Data Structures and Algorithms Ver. 1.0 Session 17 Objectives In this session, you will learn to: Implement a graph Apply graphs to solve programming problems](https://reader035.vdocuments.us/reader035/viewer/2022062517/56649ef65503460f94c09a65/html5/thumbnails/48.jpg)
Data Structures and Algorithms
Ver. 1.0 Session 17
5
2
3 4 6
3
36
v1 v2 v3 v4 v5 v6
0 35
v1 v4
5 9
v2
11
v3
From the DISTANCE array, select the vertex with the shortest distance from v1, such that the selected vertex is not in the FINAL array.
Let us select v3 and add it to the FINAL array.
Solving the Shortest Path Problem (Contd.)
DISTANCE
FINAL
![Page 49: Data Structures and Algorithms Ver. 1.0 Session 17 Objectives In this session, you will learn to: Implement a graph Apply graphs to solve programming problems](https://reader035.vdocuments.us/reader035/viewer/2022062517/56649ef65503460f94c09a65/html5/thumbnails/49.jpg)
Data Structures and Algorithms
Ver. 1.0 Session 17
5
2
3 4 6
3
36
v1 v2 v3 v4 v5 v6
0 35
v1 v4
5 9
v2
11
v3
8
v1 → v5 = 9
v1 → v3 → v5 = 5 + 3 = 8
8 < 9
Therefore, the entry corresponding to v5 in the DISTANCE array is changed to 8.
Solving the Shortest Path Problem (Contd.)
DISTANCE
FINAL
![Page 50: Data Structures and Algorithms Ver. 1.0 Session 17 Objectives In this session, you will learn to: Implement a graph Apply graphs to solve programming problems](https://reader035.vdocuments.us/reader035/viewer/2022062517/56649ef65503460f94c09a65/html5/thumbnails/50.jpg)
Data Structures and Algorithms
Ver. 1.0 Session 17
8
5
2
3 4 6
3
36
v1 v2 v3 v4 v5 v6
0 35
v1 v4
5
v2 v3
8
v1 → v6 = 11
v1 → v3 → v6 = 5 + 3 = 8
8 < 11
Therefore, the entry corresponding to v6 in the DISTANCE array is changed to 8.
Pass 3 complete
Solving the Shortest Path Problem (Contd.)
DISTANCE
FINAL
11
![Page 51: Data Structures and Algorithms Ver. 1.0 Session 17 Objectives In this session, you will learn to: Implement a graph Apply graphs to solve programming problems](https://reader035.vdocuments.us/reader035/viewer/2022062517/56649ef65503460f94c09a65/html5/thumbnails/51.jpg)
Data Structures and Algorithms
Ver. 1.0 Session 17
5
2
3 4 6
3
36
v1 v2 v3 v4 v5 v6
0 35
v1 v4
5
v2 v3
8 8
v5
From the DISTANCE array, select the vertex with the shortest distance from v1, such that the selected vertex is not in the FINAL array.
Let us select v5 and add it to the FINAL array.
Solving the Shortest Path Problem (Contd.)
DISTANCE
FINAL
![Page 52: Data Structures and Algorithms Ver. 1.0 Session 17 Objectives In this session, you will learn to: Implement a graph Apply graphs to solve programming problems](https://reader035.vdocuments.us/reader035/viewer/2022062517/56649ef65503460f94c09a65/html5/thumbnails/52.jpg)
Data Structures and Algorithms
Ver. 1.0 Session 17
5
2
3 4 6
3
36
v1 v2 v3 v4 v5 v6
0 35
v1 v4
5
v2 v3
8 8
v5
v1 → v6 = 8
v1 → v5 → v6 = 8 + ∞ = ∞
∞ > 8
Therefore, no change is made.
Pass 4 complete
Solving the Shortest Path Problem (Contd.)
DISTANCE
FINAL
![Page 53: Data Structures and Algorithms Ver. 1.0 Session 17 Objectives In this session, you will learn to: Implement a graph Apply graphs to solve programming problems](https://reader035.vdocuments.us/reader035/viewer/2022062517/56649ef65503460f94c09a65/html5/thumbnails/53.jpg)
Data Structures and Algorithms
Ver. 1.0 Session 17
5
2
3 4 6
3
36
v1 v2 v3 v4 v5 v6
0 35
v1 v4
5
v2 v3
8 8
v5
Now add the only remaining vertex, v6 to the FINAL array.
v6
All vertices have been added to the FINAL array.
This means that the DISTANCE array now contains the shortest distances from vertex v1 to all other vertices.
Solving the Shortest Path Problem (Contd.)
DISTANCE
FINAL
![Page 54: Data Structures and Algorithms Ver. 1.0 Session 17 Objectives In this session, you will learn to: Implement a graph Apply graphs to solve programming problems](https://reader035.vdocuments.us/reader035/viewer/2022062517/56649ef65503460f94c09a65/html5/thumbnails/54.jpg)
Data Structures and Algorithms
Ver. 1.0 Session 17
Problem Statement:In the previous activity, you created a program to represent a set of cities and the distances between them in the form of a graph. Extend the program to include the functionality for finding the shortest path from a given city to all the other cities.
Activity: Solving the Shortest Path Problem
![Page 55: Data Structures and Algorithms Ver. 1.0 Session 17 Objectives In this session, you will learn to: Implement a graph Apply graphs to solve programming problems](https://reader035.vdocuments.us/reader035/viewer/2022062517/56649ef65503460f94c09a65/html5/thumbnails/55.jpg)
Data Structures and Algorithms
Ver. 1.0 Session 17
In this session, you learned that:The two most commonly used ways of representing a graph are as follows:
Adjacency matrix
Adjacency list
Traversing a graph means visiting all the vertices in the graph.
In a graph, there is no special vertex designated as the starting vertex. Therefore, traversal of the graph may start from any vertex.
You can traverse a graph with the help of the following two methods:
DFS
BFS
Summary
![Page 56: Data Structures and Algorithms Ver. 1.0 Session 17 Objectives In this session, you will learn to: Implement a graph Apply graphs to solve programming problems](https://reader035.vdocuments.us/reader035/viewer/2022062517/56649ef65503460f94c09a65/html5/thumbnails/56.jpg)
Data Structures and Algorithms
Ver. 1.0 Session 17
Graph theory has been instrumental in analyzing and solving problems in areas as diverse as computer network design, urban planning, finding shortest paths and molecular biology.
Summary (Contd.)