Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- priority_queue<ii, vector<ii>, greater<ii> > q; //data all is int ,container = vecter,greate<int> is min heap
- vector<int> dist;
- dist.assign(n, INT_MAX); // Set all distance to maximum as possible
- dist[s] = 0;
- q.push(make_pair(dist[s], s)); // starting vertex
- while (!q.empty())
- {
- int current_vertex = q.top().second;
- q.pop();
- for (size_t i = 0; i < edge[current_vertex].size(); i++)
- {
- int next_vertex = edge[current_vertex][i].first;
- int w = edge[current_vertex][i].second;
- if (dist[next_vertex] > dist[current_vertex] + w)
- {
- dist[next_vertex] = dist[current_vertex] + w;
- q.push(make_pair(dist[next_vertex], next_vertex));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment