理解递归
来源:互联网 发布:中国好声音网络歌手 编辑:程序博客网 时间:2024/04/24 06:26
递归就是调用函数本身
其实是同名而已,每次调用都会开辟新的内存空间,和A调用B,B调用C,C再调用D过程一样.
D函数执行完毕后,返回到C,C执行D以后的语句,直到C执行完毕,返回到B,B再执行C以后的语句,直到B执行完毕,返回到A,A执行完毕后,整个过程结束.
递归函数也一样,假设递归函数为A,第N个(层)A执行结束后会返回到第N-1个(层)A,N-1个(层)A执行完毕后再返回到第N-2个(层)A,依此类推,直到返回第一个(层)A,整个过程结束.
但如下面这个递归函数,每层A在没结束之前,都会调用下一层A,永无止境:
A()
{
A();
}
所以递归调用必须放在一个条件里面:
A()
{
If()
{
A();
}
Return;
}
这样,直到if中的条件不成立了,最后一层的A执行结束,返回上一层A,然后依次返回.
注意:A返回后,会执行每一层后面的代码,但有些情况.最后一层返回了,就是目的达到了,不需要干别的,直接再返回上一层即可,即每个A()后面直接跟return,如下:
A()
{
If()
{
A();
Return;
}
Return;
}
注意:如果调用递归的语句是最后执行,则不必多加return.
0 0
- 理解递归
- 理解递归!!
- 理解递归
- 理解 递归
- 递归理解
- 理解递归
- 理解递归
- 递归理解
- 理解递归
- 理解递归
- 理解递归
- 理解递归~
- 理解递归
- 递归 理解
- 学习递归,理解递归
- 递归转非递归理解
- 【递归算法】人脑理解递归
- 理解递归、递归打印文件名
- jQuery解读之after
- 创建对象和使用方法以及属性
- java 调用第三方dll学习心得
- 2014编程之美资格赛第三题-格格取数
- .net 2.0 BackgroundWorker类详细用法
- 理解递归
- 在uboot中添加自己的命令
- Linux 多线程
- android 真机调试异常汇总
- android面试七
- 二十一投诉热点符合结婚登记矮人一等同一天短途运输犹太人属于体贴说的话风度
- set autotrace & 统计信息涵义
- Win7下Eclipse中文字体太小
- sql分组后取第一条记录