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 4bb6939..5d35836 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 @@ -61,14 +61,17 @@ public class DijkstraAlgorithm extends ShortestPathAlgorithm { if (nouveauCout < labelSucc.getCoutRealise()) { boolean dejaDansTas = Double.isFinite(labelSucc.getCoutRealise()); - labelSucc.setCoutRealise(nouveauCout); - labelSucc.setPere(arc); + if (dejaDansTas) { tas.remove(labelSucc); } else { notifyNodeReached(arc.getDestination()); } + labelSucc.setCoutRealise(nouveauCout); + labelSucc.setPere(arc); + + tas.insert(labelSucc); } } diff --git a/be-graphes-algos/src/main/java/org/insa/graphs/algorithm/shortestpath/Label.java b/be-graphes-algos/src/main/java/org/insa/graphs/algorithm/shortestpath/Label.java index a1bce0c..a3ef8da 100644 --- a/be-graphes-algos/src/main/java/org/insa/graphs/algorithm/shortestpath/Label.java +++ b/be-graphes-algos/src/main/java/org/insa/graphs/algorithm/shortestpath/Label.java @@ -16,7 +16,8 @@ public class Label implements Comparable