`
atell
  • 浏览: 158182 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

[算法系列]深度优先遍历算法&生成迷宫

阅读更多

今天理解了如何利用图的深度优先算法生成迷宫。关键在于:DFS算法,选择邻结点时必须随机

 

void DFS(GRAPH  g,int qidian,int mark[])
//从第qidian个点出发深度优先周游图g中能访问的各个顶点
{
 int v1;
 mark[qidian]=1;
 printf("%c   ",g.vexs[qidian]);
 for(v1=0;v1<g.num;v1++)//此处,改造为随机,而不是顺序
 {
  if(g.arcs[qidian][v1]!=0&&mark[v1]==0)
   DFS(g,v1,mark);
 }
}

 

上述思想,可以生成例如以下的图

 


 

根据这个图,我们将结点之间的隔板,按照路线打通即可。

 



 
 具体实现,可以使用1个字节(4位)表示一个单元格,4个位表示上下左右存不存在板。例如:1111四个位分别对应表示:上下左右。

例如第一个格子应该是1110,是7.  这样,就可以使用一个2维数组存储上述的迷宫图。

 

 

 

参考:

http://zhidao.baidu.com/question/58652444.html?fr=qrl&cid=866&index=1&fr2=query

http://wenku.baidu.com/view/f22455126edb6f1aff001f13.html

http://hi.baidu.com/%CA%FD%BE%DD%BD%E1%B9%B9%BF%CE%B3%CC/blog/item/e92340cf48d8281c00e92874.html

 

  • 大小: 28.4 KB
  • 大小: 28.3 KB
分享到:
评论

相关推荐

    基于深度优先遍历的迷宫生成程序

    本人一年前基于C#,利用深度优先遍历算法,开发的生成迷宫程序,可动态定义迷宫大小,是一个完整的VS2008项目,内附源代码经测试无误,可直接运行,希望对你有帮助~~!

    Java深度优先遍历算法随机生成迷宫

    该资源为迷宫随机生成程序,用Eclipse平台开发的,采用了深度优先遍历算法。迷宫行数列数在界面输入;入口为定点(左上角);有两个出口,在右边界和下边界随机选择。

    基于深度优先遍历算法的迷宫游戏

    这个资源是一个zip压缩包,内含一个迷宫游戏的全部源代码(基于C#编码),所有的资源文件,帮助文档,符合CDIO的软件开发文档。...本程序使用深度优先遍历算法生成的迷宫极具有可玩性,人性化界面方便用户使用。

    Java基于深度优先遍历的随机迷宫生成算法

    今天小编就为大家分享一篇关于Java基于深度优先遍历的随机迷宫生成算法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

    基于拆墙法生成迷宫,c#编写

    新手程序,仅供私人学习用。 采用深度优先遍历的拆墙迷宫算法。 具体文档参见代码,在代码中有很详细的注释描述。

    小作业之Android迷宫生成与深度遍历寻路显示

    一个自己做的迷宫生成与寻路显示小程序,可以正常运行,用递归算法生成,深度遍历寻路

    C++编写迷宫生成程序

    使用深度优先遍历实现的迷宫算法,在VC6.0上实现,迷宫大小已事先预定,可以修改添加改为动态大小生成

    C#编写的的简易迷宫

    采用C#编写的迷宫游戏程序,使用上下左右控制。 迷宫生成算法为深度优先遍历,具体为拆墙法。 代码是很多年前的了,有很多不尽如人意的地方。

    PHP树生成迷宫及A*自动寻路算法完整代码

    迷宫算法是采用树的深度遍历原理,这样生成的迷宫相当的细,而且死胡同数量相对较少! 任意两点之间都存在唯一的一条通路。 至于A*寻路算法是最大众化的一全自动寻路算法

    迷宫及最短路径遍历QT程序

    内包含QT程序,运行出来是一个60*60的迷宫,算法包括迷宫的自动生成,利用深度优先搜索、广度优先搜索两种方法遍历最短路径,并能在界面上动态显示。

    J2ME 手机3D游戏设计

    MIDP 2.0,以及JSR-184(J2ME 3D技术)的研究,采用立即模式,运用深度优先遍历算法来随机生成游戏地图,并尽力模拟手机游戏的普遍性形式,实现一个操作简单,并有一定可玩性的完整3D手机迷宫游戏。 关键词: J2ME...

    随机生成迷宫的算法,用两种方式:Prime,DFS实现

    (迷宫算法,随机生成迷宫) 非常简单的随机生成迷宫的算法,用两种方式:Prime,DFS实现 快要大四了,要赶紧复习下数据结构好找工作,哈哈哈哈哈,所以最近在看图相关的算法,光看书没什么感觉,准备实践一下,写个迷宫算法 ...

    php迷宫生成和自动寻路示例

    迷宫的生成类Maze.php,采用树的深度遍历算法 自动寻路是大众的寻路A*(AStar)算法

    算法分析与设计——无向图的应用(C++版).

    然后,和有向图相似的介绍了两种无向图的遍历方法(深度优先遍历和广度优先遍历)。接着介绍了迷宫问题的求解方法。最后,介绍了求解最短路径的六种方法,包括宽度优先搜索、动态规划、A﹡算法、等代价搜索法、...

    PHP树的深度编历生成迷宫及A*自动寻路算法实例分析

    三思的迷宫算法是采用树的深度遍历原理,这样生成的迷宫相当的细,而且死胡同数量相对较少! 任意两点之间都存在唯一的一条通路。 至于A*寻路算法是最大众化的一全自动寻路算法 废话不多说,贴上带代码 迷宫生成类:...

    Path-Finder:此应用程序将有助于可视化一些路径查找和迷宫生成算法

    路径查找器可视化器这是一个网页,可通过在迷宫中搜索目标来帮助可视化广度优先搜索和深度优先搜索算法。 迷宫和算法使用HTML &lt;table&gt;可视化。 链接到项目:-https: 广度优先搜索广度优先搜索是用于遍历或搜索树或图...

    C语言版数据结构与算法分析-严蔚敏经典视频教程

    07-009习题课:图的简单路径、深度优先遍历图的非递归算法等 09-001顺序表的查找、有序表的查找、二分查找 09-002顺序表的查找与有序表的查找性能分析 09-003二分查找的平均查找长度、查找树表 09-004动态查找表:...

    MazeAndroid:创建一个随机生成的迷宫,并允许用户遍历它

    迷宫创建一个随机生成的迷宫,并允许用户遍历它-使用回溯(深度优先搜索算法)创建随机生成的迷宫-利用android SDK-用户玩遍历迷宫并吃掉10个对象的游戏

    基于Python实现的迷宫搜索游戏源码+项目详细说明(课程作业).zip

    Generate.py 是项目中负责生成迷宫的,提供了DFS、PRIM两种生成方式,具体的逻辑一会会介绍; solve.py 是项目中负责迷宫求解的部分,提供了DFS、BFS、A*三种迷宫求解方案。 生成算法逻辑实现 该部分介绍一下两个...

Global site tag (gtag.js) - Google Analytics