我有二维表所代表的矩形图(我不能改变图表的形式),如:
bool graph[n][m]; //where n and m are dimensions of rectangle
看起来大致如此:
我的问题是:在我的情况下,表示图形顶点之间距离的最佳方式是什么?
并且:在这种情况下我如何使用Dijkstry alghoritm的BFS来找到从graph[x0][y0]
到graph[x1][y1]
的最短路径?
我试图在互联网上搜索正确的解决方案,但我只看到了基于向量,列表和结构的代码。
重要编辑:
我很抱歉。我的图表仅在开头是矩形。然后它会得到一些变化(在顶点之间的距离)和变化形式到不同的东西。请注意这一点。
答案 0 :(得分:2)
假设您的“图表”确实是一个地图,您可以在true
单元格上保持并仅在它们相邻时移动,那么一个简单的算法基于充满洪水的想法:
(x0, y0)
(x1, y1)
。在最后一种情况下,有一条路径,可以通过跟踪您保存的链接重建最短路径。答案 1 :(得分:1)
这个怎么样:
unsigned int horizontalEdges[n][m-1];
unsigned int verticalEdges[n-1][m];
Dijkstra算法的哪些部分证明是困难的?