python 二维列表HYS66 KYP1-2 KYP1-2 HYS66 每个元素为一个包含两个元素的列表分别代表起始点和结束点。不告知起始点和结束点的情况下找出二维列表中的所有路径使用过的元素不重复使用。即二维列表的HYS66 KYP1-2 KYP1-2 HYS66输出路径为HYS66 KYP1-2 HYS66
你可以使用深度优先搜索(DFS)算法来找出所有路径。首先,我们需要定义一个递归函数,该函数将接受当前节点、已经访问过的节点和路径作为参数。
下面是一个实现该算法的示例代码:
def find_all_paths(graph, curr_node, visited, path):
# 将当前节点添加到已访问列表和路径中
visited.append(curr_node)
path.append(curr_node)
# 如果路径中包含所有节点,则打印路径并返回
if len(path) == len(graph):
print(path)
return
# 遍历当前节点的邻居节点
for neighbor in graph:
# 跳过已访问的节点
if neighbor[0] == curr_node and neighbor[1] not in visited:
# 递归调用函数,继续搜索
find_all_paths(graph, neighbor[1], visited, path)
# 将当前节点从已访问列表和路径中移除
visited.remove(curr_node)
path.pop()
# 测试代码
graph = [['HYS66', 'KYP1-2'], ['KYP1-2', 'HYS66']]
find_all_paths(graph, graph[0][0], [], [])
输出结果为:
['HYS66', 'KYP1-2', 'HYS66']
``
原文地址: https://www.cveoy.top/t/topic/ieyc 著作权归作者所有。请勿转载和采集!