我在解决一个特定问题时遇到了一些麻烦,即在迷宫图中找到最短路径 . 可能是因为迷宫是由像_2458686这样的四维数组初始化的事实而陷入困境 . 第一对和第二对索引在行/列形成中指定图中的位置 . 该图如下所示:
XXXXXXXXXXXXX
..........X.X
X.XXX.XXX.X.X
X.X.X...X.X.X
X.X.XXX.XXX.X
X...X.....X..
XXXXXXXXXXXXX
ArrayList必须按从头到尾的顺序保存路径中顶点的位置 .
我已经编写了构造函数和连接方法;但是,我找到了最短路径方法的问题 . 以下是我如何创建迷宫图的示例:
final int edges[][] = {{1, 0, 1, 1}, {1, 1, 1, 2}, {1, 1, 2, 1},
{1, 2, 1, 3}, {1, 3, 1, 4}, {1, 4, 1, 5}, {1, 5, 1, 6},
{1, 5, 2, 5}, {1, 6, 1, 7}, {1, 7, 1, 8}, {1, 8, 1, 9},
{1, 9, 2, 9}, {1, 11, 2, 11}, {2, 1, 3, 1}, {2, 5, 3, 5},
{2, 9, 3, 9}, {2, 11, 3, 11}, {3, 1, 4, 1}, {3, 3, 4, 3},
{3, 5, 3, 6}, {3, 6, 3, 7}, {3, 7, 4, 7}, {3, 11, 4, 11},
{4, 1, 5, 1}, {4, 3, 5, 3}, {4, 7, 5, 7}, {4, 11, 5, 11},
{5, 1, 5, 2}, {5, 2, 5, 3}, {5, 5, 5, 6}, {5, 6, 5, 7},
{5, 7, 5, 8}, {5, 8, 5, 9}, {5, 11, 5, 12}};
MazeGraph maze = new MazeGraph(13, 7);
for (int[] edge : edges)
maze.connect(new Location(edge[0], edge[1]), new Location(edge[2], edge[3]));