Rumah > Soal Jawab > teks badan
Mula mempelajari ular sawa dan melihat bahagian tentang struktur data tentang graf Ini adalah untuk melaksanakan lintasan pertama mendalam dan lintasan pertama keluasan graf, tetapi pada akhirnya, ia adalah g.add_nodes([i+1 untuk. i dalam julat(10)]) TypeError: add_nodes() tiada 1 hujah kedudukan yang diperlukan: 'nodelist' akan dipaparkan Saya tidak tahu bagaimana untuk menyelesaikannya.
Ini adalah program saya
Graf kelas(objek):
def __init__(self, *args, **kwargs):
self.node_neighbors = {}
self.visited = {}
def add_nodes(self,nodelist):
for node in nodelist:
self.add_node(node)
def add_node(self,node):
if node not in self.add_nodes():
self.node_neighbors[node] = []
def add_edge(self,edge):
u, v = edge
if(v not in self.node_neighbors[u]) and (u not in self.node_neighbors[v]):
self.node_neighbors[u].append(u)
if(u!=v):
self.node_neighbors[v].append(u)
def nodes(self):
return self.node_neighbors.keys()
def depth_first_search(self, root=None):
order = []
def dfs(node):
self.visited[node] = True
order.append(node)
for n in self.node_neighbors[node]:
if not n in self.visited:
dfs(n)
if root:
dfs(root)
for node in self.nodes():
if not node in self.visited:
dfs(node)
print(order)
return order
def breadtg_frist_search(self, root = None):
queue = []
order = []
def bfs():
while len(queue) > 0:
node = queue.pop()
self.visited[node] = True
for n in self.node_neighbors[node]:
if (not n in self.visited) and (not n in queue):
queue.append(n)
order.append(n)
if root:
queue.append(root)
order.append(root)
bfs()
for node in self.nodes():
if not node in self.visited:
queue.append(node)
order.append(node)
bfs()
print(order)
return order
jika nama == '__utama__':
g = Graph()
g.add_nodes([i+1 untuk i dalam julat(10)])
g.add_edge((1, 2))
g.add_edge((1, 3))
g.add_edge((2, 4) )
g.add_edge((2, 5))
g.add_edge((4, 8))
g.add_edge((5, 8))
g.add_edge((5, 9))
g.add_edge( (3, 6))
g.add_edge((3, 7))
g.add_edge((7, 10))
g.add_edge((9, 10))
print('nod:' + g.nodes ())
pesanan = g.breadtg_frist_search(1)
order = g.depth_first_search(1)
学习ing2017-06-14 10:53:00
def add_node(self,node):
if node not in self.add_nodes():
self.node_neighbors[node] = []
if node not in self.add_nodes():
中的add_nodes()
Memerlukan parameter, terpulang kepada anda apa yang anda perlukan.