python 二维列表HYS66 KYP1-2 KYP1-2 HYS66找路径使用过的不再使用每个路径存储为一个列表
你可以使用递归来找到路径。首先,创建一个空列表用于存储所有路径。然后,定义一个递归函数,该函数接受当前路径和当前位置作为参数。
在递归函数中,首先将当前位置添加到当前路径中。然后,检查当前位置是否为目标位置。如果是,则将当前路径添加到路径列表中。否则,遍历二维列表,查找下一个可能的位置,并递归调用函数以继续搜索路径。在递归调用之后,将当前位置从当前路径中删除,以便在下一次递归调用中不再使用。
下面是一个示例代码:
def find_path(graph, start, end, path=[]):
path = path + [start]
if start == end:
return [path]
if start not in graph:
return []
paths = []
for node in graph[start]:
if node not in path:
new_paths = find_path(graph, node, end, path)
for new_path in new_paths:
paths.append(new_path)
return paths
graph = {'HYS66': ['KYP1-2'], 'KYP1-2': ['HYS66']}
start = 'HYS66'
end = 'KYP1-2'
paths = find_path(graph, start, end)
print(paths)
输出结果为:[['HYS66', 'KYP1-2']]。
注意,这个代码示例中的图是以字典的形式表示的,其中键是节点,值是与该节点相连的节点列表。你可以根据你的实际情况调整图的表示方式
原文地址: https://www.cveoy.top/t/topic/ibMw 著作权归作者所有。请勿转载和采集!