Add Dijkstra.

This commit is contained in:
Oleksii Trekhleb
2018-05-03 06:47:09 +03:00
parent 8b057b10d0
commit ce7a4a930f
3 changed files with 51 additions and 9 deletions

View File

@@ -33,10 +33,17 @@ export default function dijkstra(graph, startVertex) {
if (distanceToNeighborFromCurrent < existingDistanceToNeighbor) {
distances[neighbor.getKey()] = distanceToNeighborFromCurrent;
// Change priority.
if (queue.hasValue(neighbor)) {
queue.changePriority(neighbor, distances[neighbor.getKey()]);
}
}
// Add neighbor to the queue for further visiting.
queue.add(neighbor, distances[neighbor.getKey()]);
if (!queue.hasValue(neighbor)) {
queue.add(neighbor, distances[neighbor.getKey()]);
}
}
});