我正在解决BFS上的问题。我能够通过邻接表实现BFS算法,但我被困在这个问题中: 我必须告诉是否有可能从起点行进迷宫到迷宫终点的距离。单元格包含0或1。由于它不能通过包含值1的单元格传播,并且两个单元格之间的移动只有在它们共享一个公共边缘时才有可能。 那么如何直接在这里实现BFS而不需要进入邻接表呢?实现没有邻接表的bfs
2
A
回答
2
您不必将图形显式表示为做BFS的邻接表。从每个单元格(x,y)
你知道哪些是它的4个潜在的邻居 - (x-1, y)
,(x, y-1)
,(x+1, y)
和(x, y+1)
。我说potential
,因为它们中的任何一个都可能脱离桌子,因此不能成为邻居。现在只需用一对整数 - 它的坐标和队列中的推对来标识每个顶点。当从队列中弹出时,使用上面所述的方法访问四个可能的邻居。
希望这足以帮助你 - 我可以提供完整的代码,但最好是自己写。
相关问题
- 1. BFS和DFS的邻接表
- 2. Java实现的邻接表
- 3. 使用相邻列表实现的bfs调试
- 4. HashMap来实现邻接表
- 5. BFS的实现
- 6. 图的邻接列表的实现
- 7. 用于实现邻接列表的Hashmap
- 8. C++中的邻接列表实现
- 9. Java带有有向边的图的邻接表实现
- 10. 定向邻接表快速实现
- 11. 邻接矩阵实现
- 12. 邻接矩阵图实现
- 13. 使用STL中的邻接列表的BFS
- 14. 如何为邻接表构造适合BFS的数据结构?
- 15. 邻接矩阵列表O(m + n)上的BFS如何?
- 16. 在Java中实现BFS
- 17. 优化Haskell BFS实现
- 18. 社交网络图是如何实现的?邻接列表或邻接矩阵
- 19. 图的邻接矩阵实现
- 20. WCF接口没有实现
- 21. Java:没有接口实现?
- 22. BFS和UCS算法。我的BFS实现工作,但我的UCS没有。不知道为什么
- 23. C图邻接列表实现越来越多的相邻阵列
- 24. 从图中创建邻接表的两种实现方式
- 25. 仅使用邻接矩阵的BFS最短路径?
- 26. 我的类实现与方法的接口。没有实现,但没有错误
- 27. 邻接矩阵vs有向加权图的邻接列表
- 28. 有没有实现HttpServletRequest的ServletRequest实现?
- 29. 没有完全实现的接口
- 30. 没有public accessor的ActionScript3接口实现?
如何查看相邻单元格的地图(2d数组)而不是邻接列表? – Shahbaz
@Shahbaz你不需要明确存储邻接表来解决问题。 –
@IvayloStrandjev,是不是我说的? – Shahbaz