用python队列求解迷宫问题
时间: 2023-11-21 08:55:32 浏览: 133
以下是使用Python队列求解迷宫问题的示例代码:
```python
from queue import Queue
def solve_maze(maze, start, end):
q = Queue()
q.put(start)
visited = set()
while not q.empty():
current = q.get()
if current == end:
return True
visited.add(current)
for direction in [(0, 1), (0, -1), (1, 0), (-1, 0)]:
next_pos = (current[0] + direction[0], current[1] + direction[1])
if next_pos[0] < 0 or next_pos[0] >= len(maze) or next_pos[1] < 0 or next_pos[1] >= len(maze[0]):
continue
if maze[next_pos[0]][next_pos[1]] == 1:
continue
if next_pos in visited:
continue
q.put(next_pos)
return False
maze = [[0, 1, 0, 0, 0],
[0, 1, 0, 1, 0],
[0, 0, 0, 0, 0],
[0, 1, 1, 1, 0],
[0, 0, 0, 1, 0]]
start = (0, 0)
end = (4, 4)
if solve_maze(maze, start, end):
print("Path found!")
else:
print("Path not found.")
```
该代码使用了队列来实现广度优先搜索算法,从起点开始搜索,每次将当前位置的四个相邻位置加入队列中,直到找到终点或队列为空为止。在搜索过程中,使用一个集合来记录已经访问过的位置,避免重复访问。如果找到了终点,返回True,否则返回False。
阅读全文