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..6e759a4 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,18 @@ package org.insa.graphs.algorithm.shortestpath; +import org.insa.graphs.algorithm.AbstractSolution; +import org.insa.graphs.algorithm.utils.BinaryHeap; +import org.insa.graphs.algorithm.utils.ElementNotFoundException; +import org.insa.graphs.algorithm.utils.PriorityQueue; +import org.insa.graphs.model.Arc; +import org.insa.graphs.model.Graph; +import org.insa.graphs.model.Node; +import org.insa.graphs.model.Path; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + public class DijkstraAlgorithm extends ShortestPathAlgorithm { public DijkstraAlgorithm(ShortestPathData data) { @@ -8,10 +21,77 @@ public class DijkstraAlgorithm extends ShortestPathAlgorithm { @Override protected ShortestPathSolution doRun() { + // Retreive the graph final ShortestPathData data = getInputData(); - ShortestPathSolution solution = null; - // TODO: - return solution; + Graph graph = data.getGraph(); + + final int nbNodes = graph.size(); + + // Construct a binary heap for Label (comparison is based on their cost) + PriorityQueue