在python中逐个打印图形的所有元素
我尝试用python在这个算法中遍历一个图。我应该做什么改变 如果我想一个接一个地打印图形的所有元素,或者遍历整个图形,那么就进行make 图表 任何帮助都将不胜感激。谢谢在python中逐个打印图形的所有元素,python,graph-traversal,Python,Graph Traversal,我尝试用python在这个算法中遍历一个图。我应该做什么改变 如果我想一个接一个地打印图形的所有元素,或者遍历整个图形,那么就进行make 图表 任何帮助都将不胜感激。谢谢 grapth={'A': ['B', 10, 'B', 10, 'B', 10, 'C', 15], 'C': [1001, 'OUT'], 'B': [1000, 'IN', 1000, 'IN']} print "Path:",find_all_paths(Portdic
grapth={'A': ['B', 10, 'B', 10, 'B', 10, 'C', 15], 'C': [1001, 'OUT'], 'B':
[1000, 'IN', 1000, 'IN']}
print "Path:",find_all_paths(Portdict1,'A','IN')
def find_all_paths(graph, start, end, path=[]):
path = path + [start]
if start == end:
return [path]
if not graph.has_key(start):
return []
paths = []
for node in graph[start]:
if node not in path:
newpaths = find_all_paths(graph, node, end, path)
for newpath in newpaths:
paths.append(newpath)
return paths
你的“图”是一个字典,Python中的字典是无序的,如果你想使用,你可以从模块中导入它
订购证明:
>>> for key, value in graph.items():
print key, value
A ['B', 10, 'B', 10, 'B', 10, 'C', 15]
C [1001, 'OUT']
B [1000, 'IN', 1000, 'IN']
请注意,由于初始代码的键顺序为“A、C、B”,因此它们将与OrderedICT保持一致
>>> for key, value in graph.items():
print key, value
A ['B', 10, 'B', 10, 'B', 10, 'C', 15]
C [1001, 'OUT']
B [1000, 'IN', 1000, 'IN']