图论——BFS搜索模板(python)

张开发
2026/4/20 4:58:42 15 分钟阅读

分享文章

图论——BFS搜索模板(python)
思路使用队列完成BFS搜索。使用标记数组标记元素是否被使用过。from collections import deque qdeque() res[] visited[[0]*n for _ in range(m)] #m行n列的网格初始化标记数组为全0 q.append([start_x,start_y]) #初始节点坐标入队 如q[(5,3)] visited[start_x][start_y]1 dirs[(0,1),(0,-1),(1,0),(-1,0)] #定义四个方向 def bfs(start_x,start_y): while q: #当队列不为空时执行 x,yq.popleft() #出队 res.append(grid[x][y]) #记录出队的元素 for dx,dy in dirs: nxxdx nyydy if 0nxm and 0nyn: #如果没有越界 if visited[nx][ny]0: #如果没有使用 visited[nx][ny]1 #标记为使用后入队 q.append([nx,ny]) print(res) return res

更多文章