diff --git a/be-graphes-algos/src/main/java/org/insa/graphs/algorithm/shortestpath/AStarAlgorithm.java b/be-graphes-algos/src/main/java/org/insa/graphs/algorithm/shortestpath/AStarAlgorithm.java index fd172f0..0cc39a7 100644 --- a/be-graphes-algos/src/main/java/org/insa/graphs/algorithm/shortestpath/AStarAlgorithm.java +++ b/be-graphes-algos/src/main/java/org/insa/graphs/algorithm/shortestpath/AStarAlgorithm.java @@ -1,9 +1,18 @@ package org.insa.graphs.algorithm.shortestpath; +import org.insa.graphs.model.Node; + public class AStarAlgorithm extends DijkstraAlgorithm { + private Node destination; + + @Override + protected Label createLabel(Node node) { + return new LabelStar(node, destination); + } public AStarAlgorithm(ShortestPathData data) { super(data); + destination = data.getDestination(); } } 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 a6b5e16..5537be6 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 @@ -16,6 +16,10 @@ public class DijkstraAlgorithm extends ShortestPathAlgorithm { super(data); } + protected Label createLabel(Node node) { + return new Label(node); + } + @Override protected ShortestPathSolution doRun() { @@ -38,7 +42,7 @@ public class DijkstraAlgorithm extends ShortestPathAlgorithm { for (Node node : graph.getNodes()) { // Luckily they are ordered by id. // ArrayList.set only works if the value is already initialized (because why Java?) - labels.add(new Label(node)); + labels.add(this.createLabel(node)); } Label s = labels.get(data.getOrigin().getId());