From bc8ef9e8a9db3ac1db7dceff8ac7c062e26ce364 Mon Sep 17 00:00:00 2001 From: Nidheesh Pandey Date: Thu, 28 Dec 2017 19:56:35 +0530 Subject: [PATCH] add comments and remove --- Graph/Dijkstra.cpp | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/Graph/Dijkstra.cpp b/Graph/Dijkstra.cpp index 844ad168f..c395cd527 100644 --- a/Graph/Dijkstra.cpp +++ b/Graph/Dijkstra.cpp @@ -1,16 +1,18 @@ -#include +#include +#include +#include +#include using namespace std; #define INF 10000010 vector < pair > graph[5*100001]; -int m,n,l,x,y; int dis[5*100001]; int dij(vector > * v,int s,int * dis) { priority_queue < pair , vector < pair >,greater < pair > > pq; + // source distance to zero. pq.push(make_pair(0,s)); dis[s] = 0; int u; while(!pq.empty()) { - u = (pq.top()).second; pq.pop(); for( vector > :: iterator it = v[u].begin(); it != v[u].end();it++) { @@ -22,19 +24,23 @@ int dij(vector > * v,int s,int * dis) { } } int main() { + int m,n,l,x,y,s; + // n--> number of nodes , m --> number of edges cin>>n>>m; for(int i = 0;i < m;i++) { + // input edges. scanf("%d%d%d",&x,&y,&l); graph[x].push_back(make_pair(l,y)); - graph[y].push_back(make_pair(l,x)); + graph[y].push_back(make_pair(l,x)); // comment this line for directed graph } - + // start node. scanf("%d",&s); - for(int i = 0;i < n;i++) + // intialise all distances to infinity. + for(int i = 1;i <= n;i++) dis[i] = INF; dij(graph,s,dis); - for(int i = 0;i < n;i++) + for(int i = 1;i <= n;i++) if(dis[i] == INF) cout<<"-1 "; else