老鼠走迷宫是一个典型的递归的问题,写几个这样的题才可以充分理解递归的过程。

写递归的过程有几点需要注意:

(1)递归结束的条件

(2)递归过程的脉络,即逻辑要清晰。

/

//

// 在迷宫中显示老鼠能走出的迷宫的一条路径

//

//

/

#include

#include

#define Wide 8

#define Height 8

// 迷宫设计

int maze[8][8] = {

{ 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 } ,

{ 1 , 0 , 0 , 0 , 1 , 1 , 1 , 1 } ,

{ 1 , 0 , 0 , 0 , 0 , 1 , 1 , 1 } ,

{ 1 , 1 , 0 , 0 , 0 , 0 , 0 , 1 } ,

{ 1 , 0 , 0 , 1 , 0 , 1 , 0 , 1 } ,

{ 1 , 0 , 0 , 1 , 1 , 0 , 0 , 1 } ,

{ 1 , 0 , 0 , 0 , 0 , 0 , 0 , 1 } ,

{ 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 } } ;

int startX = 1 ; // 开始处

int startY = 1 ;

int endX = 6 ; // 结束处

int endY = 6 ;

bool success = false ;

// 显示迷宫

void showMaze()

{

for( int i = 0 ; i < Wide ; i++ )

{

for( int j = 0 ; j < Height ; j++ )

{

if( maze[i][j] == 1 )

{

printf("□") ;

}

else

{

printf(" ") ;

}

}

printf("\n") ;

}

}

// 显示结果

void showResult()

{

for( int i = 0 ; i < Wide ; i++ )

{

for( int j = 0 ; j < Height ; j++ )

{

if( maze[i][j] == 1 )

{

printf("□") ;

}

else if( maze[i][j] == 2 )

{

printf("☆") ;

}

else

{

printf(" ") ;

}

}

printf("\n") ;

}

}

int visit( int x , int y )

{

maze[x][y] = 2 ; // 标记为路径中的一点

if( x == endX && y == endY ) // 判断是否到达终点

{

success = true ; // 找到终点

return 1 ;

}

// 向上

if( maze[x-1][y] == 0 )

{

if( visit( x-1 , y ) == 1 )

{

return 1 ;

}

}

// 向下

if( maze[x+1][y] == 0 )

{

if( visit( x+1 , y) == 1 )

{

return 1 ;

}

}

// 向左

if( maze[x][y-1] == 0 )

{

if( visit( x , y - 1 ) == 1 )

{

return 1 ;

}

}

// 向右

if( maze[x][y+1] == 0 )

{

if( visit( x , y + 1 ) == 1 )

{

return 1 ;

}

}

maze[x][y] = 0 ; // 说明此位置无法到达终点,在路径中去掉该点

return -1 ;

}

int main()

{

int x = startX ;

int y = startY ;

showMaze() ;

printf("\n\n") ;

visit( x , y ) ;

if( success == false )

{

printf("找不到终点!\n") ;

}

else

{

printf("找到终点!\n") ;

showResult() ;

}

return 0 ;

}

java递归老鼠走迷宫_老鼠走迷宫----------递归问题相关推荐

  1. 编程题走迷宫_编程题迷宫求解

    迷宫求解问题 摘 要:用矩阵表示迷宫,将矩阵表示的迷宫转换成无向图, 用邻接表存储.对无向图从入 口结点开始广度优先搜索, 用一个一维数组存储各个结点的前驱结点的编号, 通过出口结点 Vn 找到其前驱 ...

  2. java老鼠走迷宫算法_老鼠走迷宫java算法

    说明老鼠走迷宫是递回求解的基本题型,我们在二维阵列中使用2表示迷宫墙壁,使用1来表 示老鼠的行走路径,试以程式求出由入口至出口的路径. 解法老鼠的走法有上.左.下.右四个方向,在每前进一格之后就选一个 ...

  3. java 递归生成格雷码_格雷码的递归生成

    问题:产生n位元的全部格雷码.html 格雷码(Gray Code)是一个数列集合,每一个数使用二进位来表示,假设使用n位元来表示每一个数字,任两个数之间只有一个位元值不一样. 例如如下为3位元的格雷 ...

  4. android 高仿随便走,随便走下载_随便走APP手机最新版安装 - 风云下载

    随便走APP是一款关于出行的软件.软件能够带着用户们前往更多的方向,还能够在这里提供更多吃喝玩乐的服务,在这里还能够进行更好地旅游,提供更多的服务的方法.想要了解更多的信息吗?想要在这里掌握更多的美食 ...

  5. java鬼吹灯搬山法杖_鬼吹灯昆仑迷宫技能搭配之搬山篇攻略心得

    有的新手玩家可能对<鬼吹灯昆仑迷宫>相对复杂的技能搭配犯晕.小编下面整理了一下搬山职业的主流技能搭配套路,希望可以帮助新手玩家更好的入手. 下面所说的技能情况均以主角技能说明,伙伴的技能与 ...

  6. python递归实现文件复制_在python中递归复制文件或目录

    python似乎有复制文件的功能(如shutil.copy)和复制目录的功能(如shutil.copytree),但我没有找到同时处理这两者的功能.当然,检查您是想复制一个文件还是一个目录是很简单的, ...

  7. 递归系统卷积码译码_编码器使用RSC递归系统卷积码. RSC码由前馈多项式和反馈多项式确定....

    编码器使用RSC递归系统卷积码. RSC码由前馈多项式和反馈多项式确定. 反馈变量检查输出是编码器输入位. 该主题的编码框图如图22所示. 交织器的使用是实现Turbo码的近似随机编码的关键. 交织器 ...

  8. java 迷宫代码_老鼠走迷宫代码 JAVA

    展开全部 //老鼠走迷宫程序 import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Maze1 ...

  9. c语言 老鼠乘法,c语言-老鼠走迷宫逐步理解

    c语言实现老鼠走迷宫 在没有智能手机的时代,不少人玩游戏会玩老鼠走迷宫这样的闯关游戏.每一关有着不同的地图场景,可能还会充斥着各种障碍. 老鼠走迷宫是经典的递回求解的算法题 我们用二维数组表示迷宫场景 ...

最新文章

  1. ITK:创建3D体积
  2. 显卡A卡和N卡有什么区别
  3. linux追加内核参数,Linux设置内核参数的方法
  4. php 打印对象到文件,php实现将数组或对象写入到文件的方法小结【三种方法】...
  5. python怎么退出全屏_wxPython:退出全屏
  6. Linux系统内存管理实验报告,Linux 内存管理 综合实验报告.pdf
  7. WCF元数据发布的2种方式:httpGetEnabled与mex
  8. mysql sql汇总查询将两个结果集合并一行展示
  9. 佛系青蛙外挂横行,20 元可买 21 亿无限三叶草
  10. NOIP经典基础模板总结
  11. 计算机硬盘 安装,电脑新硬盘如何安装系统
  12. 基于BOW模型的图像检索
  13. Server2003安装SQL2000企业版
  14. python图片自动上色_自己实现黑白图片自动上色AI(一)
  15. java分数计算_分数计算java
  16. 隐藏app界面和桌面应用程序图标的方法
  17. 从现实世界的角度去理解计算机领域的知识
  18. Personalized Ranking Metric Embedding for Nest New POI Recommendation
  19. As Error:Failed to find configured root that contains /storage/emulated/0/xxx/xxx/xxx.png
  20. mysql转拼音首字母大写_Mysql中文汉字转拼音的实现  mysql首字母转化为大写

热门文章

  1. c - 在格式字符串前加下划线_
  2. 将DataFrame的数字部分由字符串类型转换为数字类型
  3. 六、教师管理-列表查询、分页、搜索
  4. 数据库集群分类和介绍
  5. 淘宝网 1688 API接口 cat_get - 获得淘宝分类详情
  6. 【USACO题库】1.1.4 Broken Necklace破碎的项链
  7. 搭建zookeeper服务器集群
  8. 第六周(颜色表及其表示法)
  9. destoon模板搜索时出现乱码
  10. 《看漫画学python》超轻松