1
0
Fork 0

Commits vergleichen

...

2 Commits

Datei anzeigen

@ -78,11 +78,15 @@ public class DijkstraAlgorithm extends ShortestPathAlgorithm {
// Si le noeud n'a pas déjà était rajouté au tas, on le rajoute // Si le noeud n'a pas déjà était rajouté au tas, on le rajoute
// isReached permet de vérifier en complexité O(1) // isReached permet de vérifier en complexité O(1)
// C'est un léger coût en mémoire pour un gain en vitesse // C'est un léger coût en mémoire pour un gain en vitesse
if (!successor.isReached()) { if (successor.isReached()) {
tas.insert(successor); // removing then inserting resorts the binary heap
tas.remove(successor);
} else {
successor.markReached(); successor.markReached();
notifyNodeReached(successor.getNode()); notifyNodeReached(successor.getNode());
} }
tas.insert(successor);
} }
} }
} }
@ -106,7 +110,7 @@ public class DijkstraAlgorithm extends ShortestPathAlgorithm {
// current node and add it to the path // current node and add it to the path
if (parent_label != null) { if (parent_label != null) {
for (Arc arc : parent_label.getNode().getSuccessors()) { for (Arc arc : parent_label.getNode().getSuccessors()) {
if (arc.getDestination().getId() == current_label.getNode().getId()) { if (arc.getDestination().getId() == current_label.getNode().getId() && data.isAllowed(arc)) {
arcs_path.add(arc); arcs_path.add(arc);
break; break;
} }