如何从迷宫中创建图表

问题描述 投票:-1回答:1

我想实现本周在课堂上学到的一些图形和生成树的东西,所以我创建了一个基于Prim算法的迷宫生成算法。现在,我尝试创建一个算法来有效地解决迷宫。到目前为止,我已经进行了洪水填充,最终解决了迷宫问题,但效率非常低。我现在正试图找到一种方法将迷宫转换成图形以便使用Dijkstra的算法或DFS,但我很难过。迷宫存储在二进制数组中,其中1是墙,0是开放空间。迷宫始终从第一行中的唯一0开始,到最后一行中的唯一零结束。迷宫如下图所示存储。

static int maze2[][] = {{1, 1, 1, 1, 1, 0, 1, 1, 1, 1},
                        {1, 1, 1, 0, 0, 0, 0, 0, 0, 1},
                        {1, 0, 0, 0, 1, 0, 1, 0, 0, 1},
                        {1, 0, 0, 1, 1, 0, 1, 1, 0, 1},
                        {1, 1, 0, 0, 1, 0, 1, 1, 0, 1},
                        {1, 0, 0, 1, 1, 0, 1, 0, 0, 1},
                        {1, 1, 0, 0, 1, 0, 1, 0, 1, 1},
                        {1, 0, 0, 1, 1, 0, 1, 0, 0, 1},
                        {1, 1, 0, 0, 1, 0, 1, 0, 1, 1},
                        {1, 1, 1, 1, 1, 0, 1, 1, 1, 1}};
java graph maze minimum-spanning-tree
1个回答
0
投票

您不会将迷宫转换为图表。您只需将其视为图形。

编写算法(BFS,DFS等)时,只需要:

  • 识别节点 - (行,列)对的方法工作正常,或者您可以使用单个整数行* WIDTH +列。
  • 一种查找相邻节点的方法 - 只需检查矩阵中的相邻单元格。
© www.soinside.com 2019 - 2024. All rights reserved.