问题出在这行 RAM 10:10 10:40 coding
RAM 10:50 11:30 documentation
中,当我打印此代码时,我无法获取当前连接到(graph.vertList[currentVert].getConnections())
的所有已连接节点的列表所有连接的对象currentVert
我无法找到这些对象的node(vertex)或id,因此,我可以轻松地从一个节点遍历到另一个节点并同时打印结果。
我无法修正该错误,这是完整的代码:-
print(g.vertList[1].getConnections())
dict_keys([<__main__.Vertex object at 0x7f7a7db9a3c8>, <__main__.Vertex object at 0x7f7a7db9a2e8>])
然后我创建另一个class Queue:
def __init__(self):
self.queue=[]
def enqueue(self,item):
self.queue.insert(0,item)
def isEmpty(self):
return self.queue == []
def dequeue(self):
return self.queue.pop()
def size(self):
return len(self.queue)
:
class Vertex
另一个class Vertex:
def __init__(self,key):
self.id=key
self.connectedTo={}
def addNeighbor(self,nbr,weight=0):
self.connectedTo[nbr]=weight
def __str__(self):
return str(self.id)+' Connected To : '+str([x.id for x in self.connectedTo])
def getConnections(self):
return self.connectedTo.keys()
def getId(self):
return self.id
def getWeight(self,nbr):
return self.connectedTo[nbr]
:
class Graph
此后,我创建了一个功能 class Graph:
def __init__(self):
self.vertList={}
self.numVertices=0
def addVertex(self,key):
self.numVertices=self.numVertices+1
newVertex=Vertex(key)
self.vertList[key]=newVertex
return newVertex
def addEdges(self,f,t,cost=0):
if f in self.vertList:
if t in self.vertList:
self.vertList[f].addNeighbor(self.vertList[t],cost)
else:
return "Not present in Graph"
else:
return "Not present in Graph"
def getVertex(self,n):
if n in self.vertList:
return self.vertList[n]
else:
return None
def getVertices(self):
return self.vertList.keys()
(宽度优先搜索):
bfs
如何解决此问题?
答案 0 :(得分:0)
问题在这里:
self.vertList[f].addNeighbor(self.vertList[t],cost)
将此更改为
self.vertList[f].addNeighbor(t,cost)
它应该可以工作。