递归算法的应用

 

 

提起汉诺塔,大家都会想起递归程序,大家都知道递归程序的实现是用栈来实现的,但是,有些程序是需要用到栈,但是我们还要编写一栈的数据结构,挺麻烦的,所以,用递归程序实现起来是很简单的!

 

1.学习数据结构时,讲到迷宫算法,是用栈实现的,如果用递归算法实现会更简单的.扫雷程序也是实行递归搜索的.

http://www.cstudyhome.com/wenzhang06/ReadNews.asp?NewsID=3226

对于迷宫程序:

if(map[i-1][j]==1)//i-1行j列是可通的,map是迷宫的形状

{

draw(i-1,j);//画图,走到该位置

digui(i-1,j);//对i-1行j列位置进行递归搜索

}

if(map[i][j-1]==1)//i行j-1列是可通的

{

draw(i,j-1);//画图,走到该位置

digui(i,j-1);//对i行j-1列位置进行递归搜索

}

if(map[i+1][j]==1)//i+1行j列是可通的

{

draw(i+1,j);//画图,走到该位置

digui(i+1,j);//对i+1行j列位置进行递归搜索

}

if(map[i+1][j]==1)//i+1行j列是可通的

{

draw(i+1,j);//画图,走到该位置

digui(i+1,j);//对i+1行j列位置进行递归搜索

}

别忘记给已经走过的位置做标志,否则,只能在原位置绕圈子!! 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值