关于路径生成算法

时间:2013-04-23 16:57:51

标签: algorithm traversal

我需要建立一个二维空间(用于所有实际目的,一个二维数组)的路径.. 每个索引[y] [x]都包含一个路径......如

+--  --+   +--  --+
|  ||  |   |  ||  |
|  | ==     ==++== 
|  ||  |   |      |
+--  --+   +------+

虽然我可以随机初始化这个空间,但我希望能够生成一系列路径,确保每个坐标都可以从其他坐标到达。

我应该考虑采用什么算法来解决这个问题?

我已经学会了许多路径 找到 算法,例如Dijkstra或A *,但我不认为这些算法可用于我的问题。< / p>

1 个答案:

答案 0 :(得分:0)

您遇到的问题基本上等同于找到spanning tree,可以使用深度优先搜索或广度优先搜索在O(n)中完成。

提示:请注意,如果A可以从B到达而B可以从C到达,那么A可以从C(传递性)到达;只要你没有单向走廊,那么如果A可以从B到达那么B也可以从A(反身性)到达。

为了生成迷宫,一旦你生成了一个跨度,那么你可以开始添加额外的边来添加一些变化(虽然额外的边缘通常会使迷宫更容易解决)。跨度保证了连接性。