Dijkstra Algorithm Help

yoro gmj123 at hotmail.co.uk
Tue Mar 8 13:12:49 EST 2011


Hello,

I am having a little trouble writing Dijkstra's Algorithm, at the
point where I have to calculate the distance of each node from the
source - here is my code so far:

infinity = 1000000
invalid_node = -1
startNode = 0

class Node:
     distFromSource = infinity
     previous = invalid_node
     visited = False

def populateNodeTable():
    nodeTable = []
    index =0
    f = open('route.txt', 'r')
    for line in f:
      node = map(int, line.split(','))
      nodeTable.append(Node())
      print nodeTable[index].previous
      print nodeTable[index].distFromSource
      index +=1
    nodeTable[startNode].distFromSource = 0

    return nodeTable

def tentativeDistance(currentNode, nodeTable):
    nearestNeighbour = []
    for currentNode in nodeTable:
         if Node[currentNode].distFromSource +
#	 currentDistance = + nodeTable[currentNode]
#      currentDistance = currentNode.distFromSource +
nodeTable.currentNode
         currentNode.previous = currentNode
         currentNode.length = currentDistance
         currentNode.visited = True
         currentNode +=1
         nearestNeighbour.append(currentNode)
         print nearestNeighbour

    return nearestNeighbour

currentNode = startNode

if __name__ == "__main__":
    populateNodeTable()
    tentativeDistance(currentNode,populateNodeTable())

As can be seen from the lines commented out, I have tried a few ways
of getting the distance though none of them has worked; I am not sure
on how I can resolve this problem



More information about the Python-list mailing list