迷宫 c 所有路径深度 搜索递归一条路径(Maze C all path depth search recursive a path).doc
《迷宫 c 所有路径深度 搜索递归一条路径(Maze C all path depth search recursive a path).doc》由会员分享,可在线阅读,更多相关《迷宫 c 所有路径深度 搜索递归一条路径(Maze C all path depth search recursive a path).doc(17页珍藏版)》请在三一文库上搜索。
1、迷宫 c 所有路径 深度 搜索 递归 一条路径(Maze C all path depth search recursive a path)/ / */ / *2011 武陟 迷宫1。在迷宫中只找一条路径的,深度搜索,找到则返回,利用栈法2。找所有路径,也是深度搜索,递归法;若路径过多则显得很慢三.广度搜素,找迷宫最短路径。用队列广度。4。*算法有待补充/ / =/ / =首先对于一条路径的迷宫的探索。深度搜索原理,从原点开始,先往下走,再往右走,遇到四个方向无法走的就回退一步,知道走到出口。迷宫地图如下:/ *1,1,1,1,1,1,1,1,1,1,1,11,0,0,0,0,0,0,0,0,
2、0,0,11,0,0,0,0,0,0,0,0,0,0,11,0,8,0,0,0,8,0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,11,0,8,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,8,0,0,0,0,11,0,8,0,0,0,0,0,0,0,0,11,0,0,8,8,0,0,0,0,0,0,11,0,0,0,8,0,0,0,0,0,0,11,1,1,1,1,1,1,1,1,1,1,1* /首先,迷宫地图的处理:为了美观我们不设- 1等两位数的标记位。0是通路,显示为:”;1是墙壁,显示为:“”;3往下走,显示为
3、:“”;4往右走,显示为:“”;5往左走,显示为:“”;6往上走,显示为:“”;2是标记走过的路径:只是标记7标记开始位置9标记结束位置8障碍的标记程序设置:起点-1,1,出口 10, 10 。/ *找到一条路线:* /伪代码:栈+ 1,把起点放入栈而(没有达到栈底时)取出栈顶如果(判断是终点)返回找到通路;对于(四个方向)如果(下面方向可以走)入栈,打破;如果(右面方向可以走)入栈,打破;如果(左面方向可以走)入栈,打破;如果(上面方向可以走)入栈,打破;如果(四个方向没有走)把栈顶位置标记障碍,弹栈返回没有通路/ / =/ / =代码实现=#包括#包括 malloc。”#包括字符串。”#定
4、义最大值12#定义maxh 12#定义最大10000无效showbg(int *);int DFS(int 3 ,int 12 ;int判断(int x,int y,int 12);国际竞争(x,y);无效的方向(int 3 ,int b 最大值);无效main()b maxh 最大值,我,J;int 3 ,t0,h0;memset(a,0,sizeof(a);memset(B,0,sizeof(b);为(i = 0;i maxh;i+)为(J = 0;J maxl;j+)scanf(“%d”,与B 我 J );如果(DFS(a,b)printf(“找到一条通路为:n n”);方向(A,B);
5、其他的printf(“没有通路n n”);b 1 17;b 10 109;ShowBg(int *)b);返回;无效showbg(int *)int,j;为(i = 0;i maxh;i+)为(J = 0;J maxl;j+)如果(*(+ maxl *我+ j)= = 1)printf(“”);如果(*(+ maxl *我+ j)= = 3)printf(“”);如果(*(+ maxl *我+ j)= = 4)printf(“”);int a maxl 3, int & tatol)int k, tx, ty, p;int b 4, 2 = 1,0, - 1,0, 0, 1, 0, 1;/ /
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 迷宫 所有路径 深度 搜索 递归 一条路径Maze all path depth search recursive path 所有 路径 一条 Maze
链接地址:https://www.31doc.com/p-11249548.html