今天一天主要研究递归问题和递归思想。在网上查了点关于递归思想的程序题看,前几个求阶乘,求和以及求费波拉契数列的递归思想都很简单。但是汉诺塔问题却解决不了。查了查网上的代码,虽然能看懂思想,但是每一步是如何实现递归的却非常的迷,哪位大神可以帮助我一下,谢谢啦
我想知道递归过程中每个盘子是如何移动的(这是如何体现递归思想的?)
对于汉诺塔,递归在这里体现了回溯的思想。递归使得每一个步骤可以再分裂出不同的后续步骤,通过本程序状态的保留,在遍历某种可能后回到这个执行点,继续下一个。
和汉诺塔类似,迷宫算法、广度优先的遍历等也体现了回溯的思想。昨天也曾经回答过你的问题,如果问题得到解决,请及时采纳,举手之劳,谢谢。
比如 你调用函数 fun() 在函数fun()里面调用了别的函数aa()。。 所谓的递归就是调用的函数名相同,和fun()调用aa()并没有什么区别。函数在调用之前要入栈。
不执行到return是不会返回的。每执行一个函数就会开辟一个栈空间。调用别的函数的时候会有一个指针指向另一个函数栈。