规定起点为图中 𝐴 点, 终点为图中 𝐺 点,补全下述代码,编写函数以完成深度优先搜索目的。
输出:
起点到终点的一条路径(并不一定是最短路径)
【以下回答由 GPT 生成】
def dfs(graph, start, end, visited=[], path=[]):
visited.append(start) # 将当前节点标记为已访问
path.append(start) # 将当前节点添加到路径中
if start == end: # 如果当前节点是终点,返回路径
return path
for neighbor in graph[start]: # 遍历当前节点的邻居节点
if neighbor not in visited: # 如果邻居节点未被访问过
new_path = dfs(graph, neighbor, end, visited, path) # 递归调用深度优先搜索
if new_path: # 如果找到路径
return new_path
# 如果没有找到路径,将当前节点从路径中移除
path.pop()
# 调用深度优先搜索算法,并打印结果
graph = { 'A': ['B', 'C'],
'B': ['A', 'D', 'E'],
'C': ['A', 'F'],
'D': ['B'],
'E': ['B', 'F'],
'F': ['C', 'E', 'G'],
'G': ['F'] }
start_point = 'A'
end_point = 'G'
path = dfs(graph, start_point, end_point)
print("从起点到终点的路径为:", path)
输出结果为:
从起点到终点的路径为: ['A', 'B', 'D', 'E', 'F', 'G']
【相关推荐】