0% found this document useful (0 votes)
8 views3 pages

12012100_dijkstra

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
8 views3 pages

12012100_dijkstra

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 3

Name:bhukya bhanuteja roll no:12012100

Implementation of Dijkstra's
Algorithm
Sol:
#include <iostream>
using namespace std;
#include <limits.h>

// Number of vertices in the graph


#define V 6

int min_dist(int dist[], bool sptSet[])


{

int min = INT_MAX, min_index;

for (int v = 0; v < V; v++)


if (sptSet[v] == false && dist[v] <= min)
min = dist[v], min_index = v;

return min_index;
}

// function to print the constructed distance array


void printSolution(int dist[])
{
cout <<"Vertex \t Distance from Source" << endl;
for (int i = 0; i < V; i++)
cout << i << " \t\t"<<dist[i]<< endl;
}

// Function implements Dijkstra's single source shortest path algorithm


void dijkstra(int graph[V][V], int src)
{
int dist[V];

bool sptSet[V];

for (int i = 0; i < V; i++)


dist[i] = INT_MAX, sptSet[i] = false;

// Distance of source vertex from itself is always 0


dist[src] = 0;

// Find shortest path for all vertices


for (int count = 0; count < V - 1; count++) {

int u = min_dist(dist, sptSet);

// Mark the picked vertex as processed


sptSet[u] = true;

// Update dist value of the adjacent vertices of the picked vertex.


for (int v = 0; v < V; v++)

if (!sptSet[v] && graph[u][v] && dist[u] != INT_MAX


&& dist[u] + graph[u][v] < dist[v])
dist[v] = dist[u] + graph[u][v];
}

// print the constructed distance array


printSolution(dist);
}

// driver program to test above function


int main()
{

/* Let us create the example graph discussed above */


int graph[V][V] = {
{ 0, 0, 7, 0, 9, 14 },
{ 0, 0, 0, 9, 0, 10 },
{ 0, 0, 4, 14, 10, 0 },
{ 0, 0, 0, 0, 0, 2},
{ 8, 11, 0, 0, 0, 0 },
{ 0, 0, 2, 0, 0, 0}
};

dijkstra(graph, 0);

return 0;
}

Output:

You might also like