Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public ArrayList <Vertex> Dijkstra(int a, int b) {
- for (Vertex vertex : vertexes) {
- vertex.f = Double.MAX_VALUE;
- }
- Vertex start = vertexes.get(a);
- Vertex finish = vertexes.get(b);
- vertexes.get(a).f = 0;
- // Heap queue = new BinaryHeap(vertexes);
- Heap queue = new DHeap(d, vertexes);
- while (queue.size() > 0) {
- Vertex v = queue.extractMin();
- if (v.number == b)
- return reconstruct_path(start, finish);
- for (int i = 0; i < graph.get(v.number).size(); ++i) {
- double edge = graph.get(v.number).get(i).getValue();
- Vertex u = graph.get(v.number).get(i).getKey();
- if (u == finish)
- u.hashCode();
- if (u.f > v.f + edge) {
- u.came_from = v;
- u.f = v.f + edge;
- queue.decreaseKey(u);
- }
- }
- }
- return null;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement