python dfs走迷宫
时间: 2024-04-20 20:21:50 浏览: 163
以下是使用DFS算法走迷宫的Python代码示例[^1]:
python
def DFS(temps, s):
stack = [] # 定义一个栈
stack.append(s) # 将起始节点加入栈中
seen = set() # 用于记录已经访问过的节点
seen.add(s) # 将起始节点标记为已访问
while len(stack) > 0:
vertex = stack.pop() # 弹出栈顶元素作为当前节点
nodes = temps[vertex] # 获取当前节点的邻接节点
for w in nodes:
if w not in seen: # 如果邻接节点未被访问过
stack.append(w) # 将邻接节点加入栈中
seen.add(w) # 标记邻接节点为已访问
print(vertex) # 输出当前节点
# 定义一个迷宫的图结构
temps = {
'A': ['B', 'C'],
'B': ['A', 'C', 'D'],
'C': ['A', 'B', 'D', 'E'],
'D': ['B', 'C', 'E', 'F'],
'E': ['C', 'D'],
'F': ['D']
}
# 使用DFS算法走迷宫,起始节点为A
DFS(temps, 'A')
```
该代码使用DFS算法实现了迷宫问题的路径搜索。首先定义了一个图的结构,然后使用栈来进行深度优先搜索。从起始节点开始,不断将未访问过的邻接节点加入栈中,并标记为已访问。当栈为空时,搜索结束。在代码中,每次弹出栈顶元素作为当前节点,并输出当前节点的值。
阅读全文