diff --git a/be-graphes-algos/src/main/java/org/insa/graphs/algorithm/shortestpath/DijkstraAlgorithm.java b/be-graphes-algos/src/main/java/org/insa/graphs/algorithm/shortestpath/DijkstraAlgorithm.java index bacb8e3..3ca2ab2 100644 --- a/be-graphes-algos/src/main/java/org/insa/graphs/algorithm/shortestpath/DijkstraAlgorithm.java +++ b/be-graphes-algos/src/main/java/org/insa/graphs/algorithm/shortestpath/DijkstraAlgorithm.java @@ -1,5 +1,16 @@ package org.insa.graphs.algorithm.shortestpath; +import org.insa.graphs.algorithm.AbstractSolution; +import org.insa.graphs.algorithm.utils.ElementNotFoundException; +import org.insa.graphs.model.Arc; +import org.insa.graphs.model.Graph; +import org.insa.graphs.algorithm.utils.BinaryHeap; +import org.insa.graphs.model.Path; + +import java.util.ArrayList; +import java.util.Collections; + + public class DijkstraAlgorithm extends ShortestPathAlgorithm { public DijkstraAlgorithm(ShortestPathData data) { @@ -9,9 +20,78 @@ public class DijkstraAlgorithm extends ShortestPathAlgorithm { @Override protected ShortestPathSolution doRun() { final ShortestPathData data = getInputData(); + + Graph graph = data.getGraph(); + final int nbNodes = graph.size(); + + // Initialize array of Labels. + Label[] labels = new Label[nbNodes]; + for (int i = 0; i < nbNodes; i++) { + labels[i] = new Label(i); + } + final int origin = data.getOrigin().getId(); + final int destination = data.getDestination().getId(); + labels[origin].setCost(0); + + // Initialize the heap + BinaryHeap