summaryrefslogtreecommitdiff
path: root/graph/dijkstra.cpp
diff options
context:
space:
mode:
authorpjungeblut <paul.jungeblut@gmail.com>2014-11-19 11:03:40 +0100
committerpjungeblut <paul.jungeblut@gmail.com>2014-11-19 11:03:40 +0100
commit50503a5884f005680a28274825bf4c15b53fb0b9 (patch)
tree4821428e1f2674f2516b3e6030d4ea5c61fff2a6 /graph/dijkstra.cpp
parent1d7b4ee73eae28b9c0c2d6f865e5bf9470d2ad60 (diff)
parentfee5322fe37cb270a93c1693e2668e53138f192d (diff)
modulares Inverses
Diffstat (limited to 'graph/dijkstra.cpp')
-rw-r--r--graph/dijkstra.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/graph/dijkstra.cpp b/graph/dijkstra.cpp
new file mode 100644
index 0000000..e7ec0c3
--- /dev/null
+++ b/graph/dijkstra.cpp
@@ -0,0 +1,20 @@
+priority_queue<ii, vector<ii>, greater<ii> > pq;
+vector<int> dist;
+dist.assign(NUM_VERTICES, INF);
+dist[0] = 0;
+pq.push(ii(0, 0));
+
+while (!pq.empty()) {
+ di front = pq.top(); pq.pop();
+ int curNode = front.second, curDist = front.first;
+
+ if (curDist > dist[curNode]) continue;
+
+ for (i = 0; i < (int)adjlist[curNode].size(); i++) {
+ int nextNode = adjlist[curNode][i].first, nextDist = curDist + adjlist[curNode][i].second;
+
+ if (nextDist < dist[nextNode]) {
+ dist[nextNode] = nextDist; pq.push(ii(nextDist, nextNode));
+ }
+ }
+} \ No newline at end of file