Advertisement
overwater

Untitled

Jan 24th, 2015
214
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.01 KB | None | 0 0
  1. public ArrayList <Vertex> Dijkstra(int a, int b) {
  2.         for (Vertex vertex : vertexes) {
  3.             vertex.f = Double.MAX_VALUE;
  4.         }
  5.         Vertex start = vertexes.get(a);
  6.         Vertex finish = vertexes.get(b);
  7.  
  8.         vertexes.get(a).f = 0;
  9. //        Heap queue = new BinaryHeap(vertexes);
  10.         Heap queue = new DHeap(d, vertexes);
  11.         while (queue.size() > 0) {
  12.             Vertex v = queue.extractMin();
  13.             if (v.number == b)
  14.                 return reconstruct_path(start, finish);
  15.             for (int i = 0; i < graph.get(v.number).size(); ++i) {
  16.                 double edge = graph.get(v.number).get(i).getValue();
  17.                 Vertex u = graph.get(v.number).get(i).getKey();
  18.                 if (u == finish)
  19.                     u.hashCode();
  20.                 if (u.f > v.f + edge) {
  21.                     u.came_from = v;
  22.                     u.f = v.f + edge;
  23.                     queue.decreaseKey(u);
  24.                 }
  25.             }
  26.         }
  27.         return null;
  28.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement