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 e731977..ae0cc11 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 @@ -12,6 +12,8 @@ import org.insa.graphs.model.Path; public class DijkstraAlgorithm extends ShortestPathAlgorithm { + Label[] labels; + public DijkstraAlgorithm(ShortestPathData data) { super(data); } @@ -20,6 +22,12 @@ public class DijkstraAlgorithm extends ShortestPathAlgorithm { return new Label(node); } + protected Label getLabel(Node node) { + if (labels[node.getId()] == null) + labels[node.getId()] = createLabel(node); + return labels[node.getId()]; + } + @Override protected ShortestPathSolution doRun() { @@ -31,7 +39,7 @@ public class DijkstraAlgorithm extends ShortestPathAlgorithm { final int nbNodes = graph.size(); // List of sommets, but with type Label - ArrayList