Dijkstra shortest path algorithm using a min priority heap