笨笨熊搬家问题深入--迷宫问题--深度搜索--还是填充思想并且打印出路线--递归--结构体数组---编程随笔(4)
来源:互联网 发布:淘宝佣金软件购买 编辑:程序博客网 时间:2024/03/29 14:06
1、感觉和之前我编的熊搬家问题差不多,就是没有打印出路径结果而已,熊搬家知识输出有没有路径,这里把(0,0)(3,3)分别设为出发点和目标点,可以根据实际情况重新设定;还是递归归根到底。
2、还有就是结构体数组要学会去用。
// 4*4 迷宫 深度优先搜索求解// 4*4数组中,1代表通路,0代表障碍,2代表一条可行路径#include <stdio.h>char maze[4][4] = { {1, 1, 1, 1}, {0, 1, 0, 1}, {0, 1, 0, 1}, {0, 1, 1, 1} };typedef struct { char x, y;} COORD;COORD dir[4] = { {0, 1}, {0, -1}, {1, 0}, { -1, 0} };//结构体数组赋初值,表示dir[0].x=0,dir[0].y=1.....COORD path[16]; //表示结构体数组path[0]-path[15],每一个path[]又有一个结构体path[].x、path[].yvoid maze_print( void ){ int i, j; for ( i = 0; i < 4; i++ ) { for ( j = 0; j < 4; j++ ) printf( "%2d", maze[i][j] ); printf( "\n" ); } printf( "--------\n" );}void maze_try( int k )//也用到了递归,不过这里在每找到一条路径后会打印出结果来{ int i; if ( path[k].x == 3 && path[k].y == 3 )//终点(3,3){ maze_print();//找到终点打印出结果来 return; } for ( i = 0; i < 4; i++ ){ path[k + 1].x = path[k].x + dir[i].x; path[k + 1].y = path[k].y + dir[i].y;//四个方向移动坐标 if ( path[k + 1].x >= 0 && path[k + 1].x < 4 && path[k + 1].y >= 0 && path[k + 1].y < 4 && maze[path[k + 1].x][path[k + 1].y] == 1 ) //四个方向移动坐标后判断是否出界,出界则这个方向无效{ maze[path[k + 1].x][path[k + 1].y] = 2; maze_try( k + 1 ); maze[path[k + 1].x][path[k + 1].y] = 1; } }}int main( void ){ printf ( "Origin:\n" ); maze_print(); path[0].x = 0; path[0].y = 0; maze[0][0] = 2;//出发点,也可以寻找这点并设为初值(0,0),其实2就是路线的标记 maze_try( 0 ); return 0;}
0 0
- 笨笨熊搬家问题深入--迷宫问题--深度搜索--还是填充思想并且打印出路线--递归--结构体数组---编程随笔(4)
- 笨笨熊搬家问题 填充思想--怎么输出结果--递归--每日一练(六)
- POJ 3984 迷宫问题(bfs搜索,递归打印)
- 迷宫问题深度优先搜索----栈与递归
- 深度优先搜索DFS(迷宫问题)
- 迷宫问题(深度优先搜索)
- 迷宫问题---深度搜索(dfs)
- 写给妹妹的编程札记 4 - 搜索: 迷宫问题 - 深度优先搜索
- 用递归思想解迷宫问题
- 迷宫问题(递归)
- 算法:堆栈与深度优先搜索(迷宫问题)
- 算法:堆栈与深度优先搜索(迷宫问题)
- 深度优先搜索(堆栈)解决走迷宫问题
- 深度优先搜索算法(迷宫最短路径问题)
- Matlab 深度优先搜索求解迷宫问题
- 用深度优先搜索解迷宫问题
- 深度优先搜索求解迷宫问题
- 迷宫问题—简单深度搜索
- 将一字符串的元音字母复制到另一个字符串中,并排序
- 如何让VS 自动把 Silverlight 项目生成的 xap 文件部署到指定目录
- Hadoop ssh配置设置
- CSS3 Transform——transform-origin
- NYOJ305_表达式求值
- 笨笨熊搬家问题深入--迷宫问题--深度搜索--还是填充思想并且打印出路线--递归--结构体数组---编程随笔(4)
- flex 彩虹柱子
- 部署asp.net网站时出现“未在本地计算机上注册 Microsoft.Jet.OLEDB.4.0 提供程序”
- Android Bluetooth蓝牙开发\蓝牙协议\蓝牙通信例子_Android支持蓝牙4.0版本_BLE开发
- 解决MySql Error Code: 2006 – MySQL服务器已离线错误
- HDU 2399 GPA(简单字符串的处理)
- oracle查询所有所有的表结构及字段描述等信息并plsql保存查询结果
- Leetcode Sort List
- Apache Commons Pool试用小记