Example #1
0
def dijkstra(aGraph, start):
    pq = PriorityQueue()
    start.setDistance(0)
    pq.buildHeap([(v.getDistance(), v) for v in aGraph])
    while not pq.isEmpty():
        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)
Example #2
0
def prim(G, start):
    pq = PriorityQueue()
    for v in G:
        v.setDistance(sys.maxsize)
        v.setPred(None)
    start.setDistance(0)
    pq.buildHeap([(v.getDistance(), v) for v in G])
    while not pq.isEmpty():
        currentVert = pq.delMin()
        for nextVert in currentVert.getConnections():
            newCost = currentVert.getWeight(nextVert)
            if nextVert in pq and newCost < nextVert.getDistance():
                nextVert.setPred(currentVert)
                nextVert.setDistance(newCost)
                pq.decreaseKey(nextVert, newCost)
	def dijkstra(graph,start):
		pq = PriorityQueue()
		for v in G:
			v.setDistance(sys.maxsize)
			v.setPred(None) 
		start.setDistance(0)
		pq.buildHeap([(v.getDistance(),v) for v in graph])
		while not pq.isEmpty():
			currentVert = pq.delMin()
			for nextVert in currentVert.getConnections():
				newDist = currentVert.getWeight(nextVert) + currentVert.getDistance()

				if newDist < nextVert.getDistance():
					nextVert.setDistance(newDist)
					nextVert.setPred(currentVert)
					pq.decreaseKey(nextVert,newDist)
Example #4
0
def prim(G,start):
	pq = PriorityQueue()

	#initialize values
	for v in G:
		v.setDistance(sys.maxsize)
		v.setPred(None) 
	start.setDistance(0)
	pq.buildHeap([(v.getDistance(),v) for v in G])
	while not pq.isEmpty(): 
		currentVert = pq.delMin()
		for nextVert in currentVert.getConnections():
			newCost = currentVert.getWeight(nextVert) + currentVert.getDistance()

			if nextVert in pq and newCost < nextVert.getDistance():
				nextVert.setPred(currentVert)
				nextVert.setDistance(newCost)
				pq.decreaseKey(nextVert,newCost)