回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<div>
</div>
<pre><code>class Graph:
def __init__(self):
self.nodes={}
self.visited = False
self.discovered = False
def vertices(self):
return self.nodes.keys()
def __len__(self):
return len(self.nodes)
def adj(self,u):
if u in self.nodes:
return self.nodes[u]
def insertNode(self,u):
if u not in self.nodes:
self.nodes[u]={}
def insertEdge(self,u,v,w):
self.insertNode(u)
self.insertNode(v)
self.nodes[u][v]=w
def bfs(g,radix):
queue=[radix]
while queue:
u=queue.pop(0)
u.visited=True
for v in G.adj(u):
if not v.visited:
queue.append(v)
return queue
if __name__=='__main__':
g = Graph()
for u, v, w in [('a', 'b', 3), ('a', 'd', 2), ('b', 'c', 5), ('c', 'd', 9), ('c', 'e', 1), ('d', 'e', 4)]:
g.insertEdge(u, v, w)
bfs(g,'a')
</code></pre>
<p>我的问题是,当我打电话时:</p>
<pre><code>bfs(g,'a')
</code></pre>
<p>PyCharm返回:</p>
<pre><code>u.visited=True
AttributeError: 'str' object has no attribute 'visited'
</code></pre>