def dijkstra(graph,start): start.setDistance(0) pq =PriorityQueue() pq.buildHeap([(aVertex.getDistance(),aVertex) for aVertex in graph]) while pq.size() > 0: currentVert = pq.delMin() for nextVert in currentVert.getConnections(): newDist = currentVert.getDistance() + currentVert.getWeight(nextVert) if newDist < nextVert.getDistance(): nextVert.setDistance(newDist) nextVert.setPred(currentVert) pq.decreaseKey(nextVert, newDist)