在Dijks中确定最近邻

2024-09-24 02:24:45 发布

您现在位置:Python中文网/ 问答频道 /正文

好的,我对代码做了一点修改,但是我对应该将哪些变量名传递给我的最近邻函数感到困惑。这两个功能正常工作:

infinity = 1000000
invalid_node = -1
startNode = 0

#Values to assign to each node
class Node:
     def __init__(self):
       self.distFromSource = infinity
       self.previous = invalid_node
       self.visited = False

#read in all network nodes
#node = the distance values between nodes
def network():
    f = open ('network.txt', 'r')
    theNetwork = [[int(networkNode) for networkNode in line.split(',')] for line in f.readlines()]
    #theNetwork = [[int(node) for node in line.split(',')] for line in f.readlines()]
    #print theNetwork

    return theNetwork

#for each node assign default values
#populate table with default values
def populateNodeTable(): 
    nodeTable = []
    index = 0
    f = open('network.txt', 'r')
    for line in f: 
      networkNode = map(int, line.split(',')) 
      nodeTable.append(Node())

      #print "The previous node is " ,nodeTable[index].previous 
      #print "The distance from source is " ,nodeTable[index].distFromSource
      #print networkNode
      index +=1
    nodeTable[startNode].distFromSource = 0 

    return nodeTable

所以,一切都很好。然而,我的下一个函数给了我一个错误,尽管我改变了括号中的变量名,我还是不能解决这个问题。下面是下一个功能代码和错误消息:

^{pr2}$

Tags: inselfnodeforindexdeflinenetwork