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..9fafe4c 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,17 +1,121 @@ package org.insa.graphs.algorithm.shortestpath; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; +import java.util.PriorityQueue; + +import org.insa.graphs.algorithm.AbstractSolution.Status; +import org.insa.graphs.algorithm.utils.BinaryHeap; +import org.insa.graphs.model.Arc; +import org.insa.graphs.model.Graph; +import org.insa.graphs.model.Node; +import org.insa.graphs.model.Path; + public class DijkstraAlgorithm extends ShortestPathAlgorithm { - public DijkstraAlgorithm(ShortestPathData data) { - super(data); - } + public DijkstraAlgorithm(ShortestPathData data) { + super(data); + } - @Override - protected ShortestPathSolution doRun() { - final ShortestPathData data = getInputData(); - ShortestPathSolution solution = null; - // TODO: - return solution; - } + @Override + protected ShortestPathSolution doRun() { + final ShortestPathData data = getInputData(); + Graph graph = data.getGraph(); + + final int nbNodes = graph.size(); + + // Create the heap and a static array to store the labels + org.insa.graphs.algorithm.utils.PriorityQueue