本帖最后由 HM赵磊 于 2013-3-22 00:17 编辑
1,递归的含义:就是函数自己调用自己
2,在内存中是如何体现的呢?:递归一定会用到栈这种数据结构,栈这种数据结构的特点是先进后出(FILO),每次调用自身都会在栈内存开辟一个空间,直到调用到的最后一个函数,然后从最后的一个函数开始逐步的返回得到的结果。
3,它是以什么形式体现的呢?- void diGui()
- {
- if(条件)
- diGui();//调用自身
- }
复制代码 4,是在函数上还是类里面?:递归定义在函数自己内部
5,递归应当注意的问题是什么呢?在使用递归的时候,应该特别注意递归的结束条件,因为如果递归不限定结束条件就是死循环。另外,在使用递归的时候,如果问题的规模比较大,那么会在内存中开辟很多内存空间,有可能会造成内存溢出。
6,如何理解和应用好递归呢?
多多想,多多联系,在实践中理解和应用。 你可以看看一个经典的汉诺塔问题,这是一个经典的递归。还要在数据结构中,树,图等定义都是使用递归的。
注:递归可以实现的一定可以使用非递归实现,但是一般都会用到栈。 |