Data Structures and AlgorithmsObjectives                In this session, you will learn to:                   Implement a ...
Data Structures and AlgorithmsRepresenting a Graph                To implement a graph, you need to first represent the gi...
Data Structures and AlgorithmsAdjacency Matrix                Consider the following   Adjacency Matrix Representation    ...
Data Structures and AlgorithmsAdjacency List                Consider the following   Adjacency List Representation        ...
Data Structures and AlgorithmsTraversing a Graph                Traversing a graph means visiting all the vertices in a   ...
Data Structures and AlgorithmsDFS                 Algorithm: DFS(v)                 1. Push the starting vertex, v into th...
Data Structures and AlgorithmsDFS (Contd.)                Push the starting vertex, v1 into the stack                     ...
Data Structures and AlgorithmsDFS (Contd.)                Pop a vertex, v1 from the stack                Visit v1         ...
Data Structures and AlgorithmsDFS (Contd.)                Pop a vertex, v1 from the stack                Visit v1         ...
Data Structures and AlgorithmsDFS (Contd.)                Pop a vertex, v2 from the stack                Visit v2         ...
Data Structures and AlgorithmsDFS (Contd.)                Pop a vertex, v2 from the stack                Visit v2         ...
Data Structures and AlgorithmsDFS (Contd.)                Pop a vertex, v6 from the stack                Visit v6         ...
Data Structures and AlgorithmsDFS (Contd.)                Pop a vertex, v3 from the stack                Visit v3         ...
Data Structures and AlgorithmsDFS (Contd.)                Pop a vertex, v3 from the stack                Visit v3         ...
Data Structures and AlgorithmsDFS (Contd.)                Pop a vertex, v5 from the stack                Visit v5         ...
Data Structures and AlgorithmsDFS (Contd.)                Pop a vertex, v4 from the stack                Visit v4         ...
Data Structures and AlgorithmsDFS (Contd.)                The stack is now empty                Therefore, traversal is co...
Data Structures and AlgorithmsDFS (Contd.)                • Although the preceding algorithm provides a simple and        ...
Data Structures and AlgorithmsDFS (Contd.)                To solve this problem, you need to       1. Repeat step 2 for ea...
Data Structures and AlgorithmsBFS                 Algorithm: BFS(v)                 1. Visit the starting vertex, v and in...
Data Structures and AlgorithmsBFS (Contd.)                Visit v1                Insert v1 into the queue                ...
Data Structures and AlgorithmsBFS (Contd.)                • Remove a vertex v1 from the queue                • Visit all u...
Data Structures and AlgorithmsBFS (Contd.)                • Remove a vertex v1 from the queue                • Visit all u...
Data Structures and AlgorithmsBFS (Contd.)                • Remove a vertex v2 from the queue                • Visit all u...
Data Structures and AlgorithmsBFS (Contd.)                • Remove a vertex v2 from the queue                • Visit all u...
Data Structures and AlgorithmsBFS (Contd.)                • Remove a vertex v4 from the queue                • Visit all u...
Data Structures and AlgorithmsBFS (Contd.)                Remove a vertex v3 from the queue                Visit all unvis...
Data Structures and AlgorithmsBFS (Contd.)                • Remove a vertex v6 from the queue                • Visit all u...
Data Structures and AlgorithmsBFS (Contd.)                • Remove a vertex v6 from the queue                • Visit all u...
Data Structures and AlgorithmsBFS (Contd.)                • Remove a vertex v5 from the queue                • Visit all u...
Data Structures and AlgorithmsBFS (Contd.)                • Remove a vertex v5 from the queue                • Visit all u...
Data Structures and AlgorithmsBFS (Contd.)                The queue is now empty                Therefore, traversal is co...
Data Structures and AlgorithmsBFS (Contd.)                Although the preceding algorithm provides a simple and          ...
Data Structures and AlgorithmsBFS (Contd.)                To solve this problem, you need to       1. Repeat step 2 for ea...
Data Structures and AlgorithmsActivity: Implementing a Graph by Using Adjacency Matrix Representation                 Prob...
Data Structures and AlgorithmsApplications of Graphs                Many problems can be easily solved by reducing them in...
Data Structures and AlgorithmsSolving the Shortest Path Problem                The shortest path problem can be solved by ...
Data Structures and AlgorithmsSolving the Shortest Path Problem (Contd.)                        5                         ...
Data Structures and AlgorithmsSolving the Shortest Path Problem (Contd.)                        5                         ...
Data Structures and AlgorithmsSolving the Shortest Path Problem (Contd.)                        5                         ...
Data Structures and AlgorithmsSolving the Shortest Path Problem (Contd.)                        5                         ...
Data Structures and AlgorithmsSolving the Shortest Path Problem (Contd.)                        5                         ...
Data Structures and AlgorithmsSolving the Shortest Path Problem (Contd.)                        5                         ...
Data Structures and AlgorithmsSolving the Shortest Path Problem (Contd.)                        5                         ...
Data Structures and AlgorithmsSolving the Shortest Path Problem (Contd.)                        5                         ...
Data Structures and AlgorithmsSolving the Shortest Path Problem (Contd.)                        5                         ...
Data Structures and AlgorithmsSolving the Shortest Path Problem (Contd.)                        5                         ...
Data Structures and AlgorithmsSolving the Shortest Path Problem (Contd.)                        5                         ...
Data Structures and AlgorithmsSolving the Shortest Path Problem (Contd.)                        5                         ...
Data Structures and AlgorithmsSolving the Shortest Path Problem (Contd.)                        5                         ...
Data Structures and AlgorithmsSolving the Shortest Path Problem (Contd.)                        5                         ...
Data Structures and AlgorithmsSolving the Shortest Path Problem (Contd.)                        5                         ...
Data Structures and AlgorithmsSolving the Shortest Path Problem (Contd.)                        5                         ...
Data Structures and AlgorithmsActivity: Solving the Shortest Path Problem                Problem Statement:               ...
Data Structures and AlgorithmsSummary               In this session, you learned that:                  The two most commo...
Data Structures and AlgorithmsSummary (Contd.)               Graph theory has been instrumental in analyzing and solving  ...
Upcoming SlideShare
Loading in...5
×

12 ds and algorithm session_17

656

Published on

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
656
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
0
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide
  • Ask students to answer this question and then come to the given example.
  • Ask students to answer this question and then come to the given example.
  • Ask students to answer this question and then come to the given example.
  • Ask students to answer this question and then come to the given example.
  • Ask students to answer this question and then come to the given example.
  • Ask students to answer this question and then come to the given example.
  • Ask students to answer this question and then come to the given example.
  • Ask students to answer this question and then come to the given example.
  • Ask students to answer this question and then come to the given example.
  • Ask students to answer this question and then come to the given example.
  • Ask students to answer this question and then come to the given example.
  • Ask students to answer this question and then come to the given example.
  • Ask students to answer this question and then come to the given example.
  • Ask students to answer this question and then come to the given example.
  • Ask students to answer this question and then come to the given example.
  • Ask students to answer this question and then come to the given example.
  • Ask students to answer this question and then come to the given example.
  • Ask students to answer this question and then come to the given example.
  • Ask students to answer this question and then come to the given example.
  • Ask students to answer this question and then come to the given example.
  • Ask students to answer this question and then come to the given example.
  • Ask students to answer this question and then come to the given example.
  • Ask students to answer this question and then come to the given example.
  • Ask students to answer this question and then come to the given example.
  • Ask students to answer this question and then come to the given example.
  • Ask students to answer this question and then come to the given example.
  • Ask students to answer this question and then come to the given example.
  • Ask students to answer this question and then come to the given example.
  • Ask students to answer this question and then come to the given example.
  • Ask students to answer this question and then come to the given example.
  • Ask students to answer this question and then come to the given example.
  • Ask students to answer this question and then come to the given example.
  • Ask students to answer this question and then come to the given example.
  • Ask students to answer this question and then come to the given example.
  • Ask students to answer this question and then come to the given example.
  • Ask students to answer this question and then come to the given example.
  • Ask students to answer this question and then come to the given example.
  • Ask students to answer this question and then come to the given example.
  • Ask students to answer this question and then come to the given example.
  • Ask students to answer this question and then come to the given example.
  • Ask students to answer this question and then come to the given example.
  • Ask students to answer this question and then come to the given example.
  • Ask students to answer this question and then come to the given example.
  • Ask students to answer this question and then come to the given example.
  • Ask students to answer this question and then come to the given example.
  • Ask students to answer this question and then come to the given example.
  • Ask students to answer this question and then come to the given example.
  • Ask students to answer this question and then come to the given example.
  • Ask students to answer this question and then come to the given example.
  • 12 ds and algorithm session_17

    1. 1. Data Structures and AlgorithmsObjectives In this session, you will learn to: Implement a graph Apply graphs to solve programming problems Ver. 1.0 Session 17
    2. 2. Data Structures and AlgorithmsRepresenting a Graph 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 Ver. 1.0 Session 17
    3. 3. Data Structures and AlgorithmsAdjacency Matrix Consider the following Adjacency Matrix Representation graph: v1 v2 v3 v4 v1 0 1 0 0 v2 0 0 1 0 v3 0 0 0 0 v4 1 0 1 0 Ver. 1.0 Session 17
    4. 4. Data Structures and AlgorithmsAdjacency List Consider the following Adjacency List Representation graph: Ver. 1.0 Session 17
    5. 5. Data Structures and AlgorithmsTraversing a Graph 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) Ver. 1.0 Session 17
    6. 6. Data Structures and AlgorithmsDFS Algorithm: DFS(v) 1. Push the starting vertex, v into the stack. 2. Repeat until the stack becomes empty: 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. Ver. 1.0 Session 17
    7. 7. Data Structures and AlgorithmsDFS (Contd.) Push the starting vertex, v1 into the stack v1 Ver. 1.0 Session 17
    8. 8. Data Structures and AlgorithmsDFS (Contd.) Pop a vertex, v1 from the stack Visit v1 Push all unvisited vertices adjacent to v1 into the stack v1 Visited: v1 Ver. 1.0 Session 17
    9. 9. Data Structures and AlgorithmsDFS (Contd.) Pop a vertex, v1 from the stack Visit v1 Push all unvisited vertices adjacent to v1 into the stack v2 v4 Visited: v1 Ver. 1.0 Session 17
    10. 10. Data Structures and AlgorithmsDFS (Contd.) Pop a vertex, v2 from the stack Visit v2 Push all unvisited vertices adjacent to v2 into the stack v2 v4 Visited: v1 v2 Ver. 1.0 Session 17
    11. 11. Data Structures and AlgorithmsDFS (Contd.) Pop a vertex, v2 from the stack Visit v2 Push all unvisited vertices adjacent to v2 into the stack v6 v3 v4 Visited: v1 v2 Ver. 1.0 Session 17
    12. 12. Data Structures and AlgorithmsDFS (Contd.) Pop a vertex, v6 from the stack Visit v6 Push all unvisited vertices adjacent to v6 into the stack v6 v3 v4 There are no unvisited vertices adjacent to v6 Visited: v1 v2 v6 Ver. 1.0 Session 17
    13. 13. Data Structures and AlgorithmsDFS (Contd.) Pop a vertex, v3 from the stack Visit v3 Push all unvisited vertices adjacent to v3 into the stack v3 v4 Visited: v1 v2 v6 v3 Ver. 1.0 Session 17
    14. 14. Data Structures and AlgorithmsDFS (Contd.) Pop a vertex, v3 from the stack Visit v3 Push all unvisited vertices adjacent to v3 into the stack v5 v4 Visited: v1 v2 v6 v3 Ver. 1.0 Session 17
    15. 15. Data Structures and AlgorithmsDFS (Contd.) Pop a vertex, v5 from the stack Visit v5 Push all unvisited vertices adjacent to v5 into the stack v5 v4 There are no unvisited vertices adjacent to v5 Visited: v1 v2 v6 v3 v5 Ver. 1.0 Session 17
    16. 16. Data Structures and AlgorithmsDFS (Contd.) Pop a vertex, v4 from the stack Visit v4 Push all unvisited vertices adjacent to v4 into the stack v4 There are no unvisited vertices adjacent to v4 Visited: v1 v2 v6 v3 v5 v4 Ver. 1.0 Session 17
    17. 17. Data Structures and AlgorithmsDFS (Contd.) The stack is now empty Therefore, traversal is complete Visited: v1 v2 v6 v3 v5 v4 Ver. 1.0 Session 17
    18. 18. Data Structures and AlgorithmsDFS (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. Ver. 1.0 Session 17
    19. 19. Data Structures and AlgorithmsDFS (Contd.) To solve this problem, you need to 1. Repeat step 2 for each vertex, v in the graph execute the preceding algorithm 2. If v is not visited: repeatedly for all unvisited vertices in a. Call DFS(v) the graph. Ver. 1.0 Session 17
    20. 20. Data Structures and AlgorithmsBFS 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. Ver. 1.0 Session 17
    21. 21. Data Structures and AlgorithmsBFS (Contd.) Visit v1 Insert v1 into the queue v1 v1 Ver. 1.0 Session 17
    22. 22. Data Structures and AlgorithmsBFS (Contd.) • Remove a vertex v1 from the queue • Visit all unvisited vertices adjacent to v1 and insert them in the queue v1 Visited: v1 Ver. 1.0 Session 17
    23. 23. Data Structures and AlgorithmsBFS (Contd.) • Remove a vertex v1 from the queue • Visit all unvisited vertices adjacent to v1 and insert them in the queue v2 v4 v1 v2 v4 Ver. 1.0 Session 17
    24. 24. Data Structures and AlgorithmsBFS (Contd.) • Remove a vertex v2 from the queue • Visit all unvisited vertices adjacent to v2 and insert them in the queue v2 v4 v1 v2 v4 Ver. 1.0 Session 17
    25. 25. Data Structures and AlgorithmsBFS (Contd.) • Remove a vertex v2 from the queue • Visit all unvisited vertices adjacent to v2 and insert them in the queue v4 v3 v6 v1 v2 v4 v3 v6 Ver. 1.0 Session 17
    26. 26. Data Structures and AlgorithmsBFS (Contd.) • Remove a vertex v4 from the queue • Visit all unvisited vertices adjacent to v4 and insert them in the queue v4 v3 v6 v5 v1 v2 v4 v3 v6 v5 Ver. 1.0 Session 17
    27. 27. Data Structures and AlgorithmsBFS (Contd.) Remove a vertex v3 from the queue Visit all unvisited vertices adjacent to v3 and insert them in the queue v3 v6 v5 v3 does not have any unvisited adjacent vertices v1 v2 v4 v3 v6 v5 Ver. 1.0 Session 17
    28. 28. Data Structures and AlgorithmsBFS (Contd.) • Remove a vertex v6 from the queue • Visit all unvisited vertices adjacent to v6 and insert them in the queue v6 v5 v3 does not have any unvisited adjacent vertices v1 v2 v4 v3 v6 v5 Ver. 1.0 Session 17
    29. 29. Data Structures and AlgorithmsBFS (Contd.) • Remove a vertex v6 from the queue • Visit all unvisited vertices adjacent to v6 and insert them in the queue v5 v6 does not have any unvisited adjacent vertices v1 v2 v4 v3 v6 v5 Ver. 1.0 Session 17
    30. 30. Data Structures and AlgorithmsBFS (Contd.) • Remove a vertex v5 from the queue • Visit all unvisited vertices adjacent to v5 and insert them in the queue v5 v6 does not have any unvisited adjacent vertices v1 v2 v4 v3 v6 v5 Ver. 1.0 Session 17
    31. 31. Data Structures and AlgorithmsBFS (Contd.) • Remove a vertex v5 from the queue • Visit all unvisited vertices adjacent to v5 and insert them in the queue v5 does not have any unvisited adjacent vertices v1 v2 v4 v3 v6 v5 Ver. 1.0 Session 17
    32. 32. Data Structures and AlgorithmsBFS (Contd.) The queue is now empty Therefore, traversal is complete v5 does not have any unvisited adjacent vertices v1 v2 v4 v3 v6 v5 Ver. 1.0 Session 17
    33. 33. Data Structures and AlgorithmsBFS (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. Ver. 1.0 Session 17
    34. 34. Data Structures and AlgorithmsBFS (Contd.) To solve this problem, you need to 1. Repeat step 2 for each vertex, v in the graph execute the preceding algorithm 2. If v is not visited: repeatedly for all unvisited vertices in a. Call BFS(v) the graph. Ver. 1.0 Session 17
    35. 35. Data Structures and AlgorithmsActivity: Implementing a Graph by Using Adjacency Matrix Representation 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. Ver. 1.0 Session 17
    36. 36. Data Structures and AlgorithmsApplications of Graphs 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. Ver. 1.0 Session 17
    37. 37. Data Structures and AlgorithmsSolving 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. Ver. 1.0 Session 17
    38. 38. Data Structures and AlgorithmsSolving the Shortest Path Problem (Contd.) 5 Suppose you need to find the shortest distance of all the vertices from vertex v1. 3 4 6 Add v1 to the FINAL array. 2 3 6 3 v1 v2 v3 v4 v5 v6 DISTANCE 0 5 ∞ 3 ∞ ∞ FINAL v1 Ver. 1.0 Session 17
    39. 39. Data Structures and AlgorithmsSolving the Shortest Path Problem (Contd.) 5 In the DISTANCE array, vertex v4 has the shortest distance from vertex v1. 3 4 6 Therefore, v4 is added to the FINAL array. 2 3 6 3 v1 v2 v3 v4 v5 v6 DISTANCE 0 5 ∞ 3 ∞ ∞ FINAL v1 v4 Ver. 1.0 Session 17
    40. 40. Data Structures and AlgorithmsSolving the Shortest Path Problem (Contd.) 5 v1 → v2 = 5 v1 → v4 → v2 = 3 + ∞ = ∞ 3 4 6 ∞>5 Therefore, no change is 2 3 made. 6 3 v1 v2 v3 v4 v5 v6 DISTANCE 0 5 ∞ 3 ∞ ∞ FINAL v1 v4 Ver. 1.0 Session 17
    41. 41. Data Structures and AlgorithmsSolving the Shortest Path Problem (Contd.) 5 v1 → v3 = ∞ v1 → v4 → v3 = 3 + 2 = 5 3 4 6 5<∞ Therefore, the entry 2 3 corresponding to v3 in the DISTANCE array is changed 6 3 to 5. v1 v2 v3 v4 v5 v6 DISTANCE 0 5 ∞ 5 3 ∞ ∞ FINAL v1 v4 Ver. 1.0 Session 17
    42. 42. Data Structures and AlgorithmsSolving the Shortest Path Problem (Contd.) 5 v1 → v5 = ∞ v1 → v4 → v5 = 3 + 6 = 9 3 4 6 9<∞ Therefore, the entry 2 3 corresponding to v5 in the DISTANCE array is changed 6 3 to 9. v1 v2 v3 v4 v5 v6 DISTANCE 0 5 5 3 ∞ 9 ∞ FINAL v1 v4 Ver. 1.0 Session 17
    43. 43. Data Structures and AlgorithmsSolving the Shortest Path Problem (Contd.) 5 v1 → v6 = ∞ v1 → v4 → v6 = 3 + ∞ = ∞ 3 4 6 Both the values are equal. 2 3 Therefore, no change is made. 6 3 PASS 1 complete v1 v2 v3 v4 v5 v6 DISTANCE 0 5 5 3 9 ∞ FINAL v1 v4 Ver. 1.0 Session 17
    44. 44. Data Structures and AlgorithmsSolving the Shortest Path Problem (Contd.) 5 From the DISTANCE array, select the vertex with the shortest distance from v1, such that the selected vertex is not 3 4 6 in the FINAL array. 2 v2 and v3 have the shortest 3 and the same distance from v1. 6 3 Let us select v2 and add it to the FINAL array. v1 v2 v3 v4 v5 v6 DISTANCE 0 5 5 3 9 ∞ FINAL v1 v4 v2 Ver. 1.0 Session 17
    45. 45. Data Structures and AlgorithmsSolving the Shortest Path Problem (Contd.) 5 v1 → v3 = 5 v1 → v2 → v3 = 5 + 4 = 9 3 4 6 9>5 Therefore, no change is 2 3 made. 6 3 v1 v2 v3 v4 v5 v6 DISTANCE 0 5 5 3 9 ∞ FINAL v1 v4 v2 Ver. 1.0 Session 17
    46. 46. Data Structures and AlgorithmsSolving the Shortest Path Problem (Contd.) 5 v1 → v5 = 9 v1 → v2 → v5 = 5 + ∞ = ∞ 3 4 6 ∞>9 Therefore, no change is 2 3 made. 6 3 v1 v2 v3 v4 v5 v6 DISTANCE 0 5 5 3 9 ∞ FINAL v1 v4 v2 Ver. 1.0 Session 17
    47. 47. Data Structures and AlgorithmsSolving the Shortest Path Problem (Contd.) 5 v1 → v6 = ∞ v1 → v2 → v6 = 5 + 6 = 11 3 4 6 11 < ∞ Therefore, the entry 2 3 corresponding to v6 in the DISTANCE array is changed 6 3 to 11. Pass 2 complete v1 v2 v3 v4 v5 v6 DISTANCE 0 5 5 3 9 ∞ 11 FINAL v1 v4 v2 Ver. 1.0 Session 17
    48. 48. Data Structures and AlgorithmsSolving the Shortest Path Problem (Contd.) 5 From the DISTANCE array, select the vertex with the shortest distance from v1, such that the selected vertex is not 3 4 6 in the FINAL array. 2 Let us select v3 and add it to 3 the FINAL array. 6 3 v1 v2 v3 v4 v5 v6 DISTANCE 0 5 5 3 9 11 FINAL v1 v4 v2 v3 Ver. 1.0 Session 17
    49. 49. Data Structures and AlgorithmsSolving the Shortest Path Problem (Contd.) 5 v1 → v5 = 9 v1 → v3 → v5 = 5 + 3 = 8 3 4 6 8<9 Therefore, the entry 2 3 corresponding to v5 in the DISTANCE array is changed 6 3 to 8. v1 v2 v3 v4 v5 v6 DISTANCE 0 5 5 3 9 8 11 FINAL v1 v4 v2 v3 Ver. 1.0 Session 17
    50. 50. Data Structures and AlgorithmsSolving the Shortest Path Problem (Contd.) 5 v1 → v6 = 11 v1 → v3 → v6 = 5 + 3 = 8 3 4 6 8 < 11 Therefore, the entry 2 3 corresponding to v6 in the DISTANCE array is changed 6 3 to 8. Pass 3 complete v1 v2 v3 v4 v5 v6 DISTANCE 0 5 5 3 8 11 8 FINAL v1 v4 v2 v3 Ver. 1.0 Session 17
    51. 51. Data Structures and AlgorithmsSolving the Shortest Path Problem (Contd.) 5 From the DISTANCE array, select the vertex with the shortest distance from v1, such that the selected vertex is not 3 4 6 in the FINAL array. 2 Let us select v5 and add it to 3 the FINAL array. 6 3 v1 v2 v3 v4 v5 v6 DISTANCE 0 5 5 3 8 8 FINAL v1 v4 v2 v3 v5 Ver. 1.0 Session 17
    52. 52. Data Structures and AlgorithmsSolving the Shortest Path Problem (Contd.) 5 v1 → v6 = 8 v1 → v5 → v6 = 8 + ∞ = ∞ 3 4 6 ∞>8 Therefore, no change is 2 3 made. 6 3 Pass 4 complete v1 v2 v3 v4 v5 v6 DISTANCE 0 5 5 3 8 8 FINAL v1 v4 v2 v3 v5 Ver. 1.0 Session 17
    53. 53. Data Structures and AlgorithmsSolving the Shortest Path Problem (Contd.) 5 Now add the only remaining vertex, v6 to the FINAL array. 3 4 6 All vertices have been added to the FINAL array. 2 This means that the 3 DISTANCE array now 6 3 contains the shortest distances from vertex v1 to all other vertices. v1 v2 v3 v4 v5 v6 DISTANCE 0 5 5 3 8 8 FINAL v1 v4 v2 v3 v5 v6 Ver. 1.0 Session 17
    54. 54. Data Structures and AlgorithmsActivity: Solving the Shortest Path Problem 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. Ver. 1.0 Session 17
    55. 55. Data Structures and AlgorithmsSummary 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 Ver. 1.0 Session 17
    56. 56. Data Structures and AlgorithmsSummary (Contd.) 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. Ver. 1.0 Session 17

    ×