深度优先搜索 搜索求解

规定起点为图中 𝐴 点, 终点为图中 𝐺 点,补全下述代码,编写函数以完成深度优先搜索目的。

img

输出:
起点到终点的一条路径(并不一定是最短路径)

img

【以下回答由 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']


【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^