当前位置: 代码迷 >> 综合 >> C 语言 prim(深度优先改进)算法 生成迷宫
  详细解决方案

C 语言 prim(深度优先改进)算法 生成迷宫

热度:63   发布时间:2023-11-22 02:50:00.0

在博文 C 语言 深度优先算法 生成迷宫 中,实现了深度优先迷宫生成算法,在博文 C 语言 随机prim算法 生成迷宫 中实现了 prim迷宫生成算法。结合两个算法改进后的迷宫生成算法效果如下:

  •  算法思想

    1、与 深度优先迷宫生成算法、随机prim迷宫生成算法 不同的是,这里使用一个链表来维护已访问的迷宫单元,并且迷宫单元的插入与当前迷宫单元的选择都是随机的。

    2、基于以上思想,有:
    1、将起点作为当前迷宫单元,并标记起点与终点为已访问
    2、当还存在未标记的迷宫单元,进行循环2.1、如果当前迷宫单元有未被访问过的的相邻的迷宫单元2.1.1、随机选择一个已访问的相邻迷宫单元2.1.2、将该相邻迷宫单元插入链表的随机位置2.1.3、移除当前迷宫单元与相邻迷宫单元的墙2.1.4、标记相邻迷宫单元并用它作为当前迷宫单元(可设置为随机取位)2.2、如果当前迷宫单元不存在未访问的相邻迷宫单元2.2.1、从链表中随机获取一个迷宫单元2.2.2、令其成为当前迷宫单元