提起汉诺塔,大家都会想起递归程序,大家都知道递归程序的实现是用栈来实现的,但是,有些程序是需要用到栈,但是我们还要编写一栈的数据结构,挺麻烦的,所以,用递归程序实现起来是很简单的!
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列位置进行递归搜索
}
别忘记给已经走过的位置做标志,否则,只能在原位置绕圈子!!