递归调用理解【含有示例代码】
2016-09-05 21:57
176 查看
【思路】:把递归想成一颗树,根节点一直往下遍历【先根】,DFS()后面的是从叶子节点开始往上遍历【后跟遍历】 退出循环是先根遍历结束
1 每一级的函数调用都有自己的局部变量.
2 递归函数中,位于递归调用语句后的语句的执行顺序和各个被调用函数的顺序相反.
3 虽然每一级递归有自己的变量,但是函数代码并不会得到复制.
4 递归函数中必须包含可以终止递归调用的语句.
1 每一级的函数调用都有自己的局部变量.
2 递归函数中,位于递归调用语句后的语句的执行顺序和各个被调用函数的顺序相反.
即位于递归函数入口前的语句,由外往里执行; 位于递归函数入口后面的语句,由里往外执行。
3 虽然每一级递归有自己的变量,但是函数代码并不会得到复制.
4 递归函数中必须包含可以终止递归调用的语句.
int region(int a[], int currentSum, int i){ currentSum += a[i]; cout << "out " << currentSum << endl; //按顺序输出:递归式前面 if (i<3){ region(a, currentSum, i + 1); cout << "in " << currentSum << endl; //先进后出:递归式后面 } cout << "hello " << endl; return currentSum; } void type(){ int a[5] = { 1, 2, 3, 4 }; cout << "final " << region(a, 0, 0) << endl; } int main(){ type(); return 0; }
相关文章推荐
- Nuva 示例代码(每日一帖)之 正则表达式(递归)
- 如何对远程对象进行异步调用(示例代码)
- 简单实用的分页控件 AspNetPager.dll 下载地址、使用方法、含有代码示例
- QuickLook 调用示例代码
- AspNetPager.dll 分页控件使用方法、含有代码示例 [转]
- 代码示例:调用SPS提供的remoting服务,在线把Office文档转换成html文档
- 递归调用的汇编代码分析
- Java调用带SoapHeader头验证的.net Webservice示例代码
- 驾驶证机动车查询验证WebSerivce调用编程接口说明及示例代码
- 图解C#中实现远程调用(Remoting)的示例代码(二)
- 使用代码调用ffmpeg示例
- C# 代码示例详尽剖析异步调用的两种方法
- Pro*C中调用存储过程的示例代码
- 遍历 XML 文件所有节点的实例代码(递归调用)
- [示例]存储过程循环与用户自定义函数递归调用
- 同步synchronized 示例 和 理解(未完,先把代码copy上,过会在写注释和理解)
- 用Ajax的Get和Post调用Servlet的简单示例及代码
- 一个带一个参数的Javascript函数及其调用的示例代码
- .NET调用新浪微博开放平台接口的代码示例
- 递归调用的汇编代码分析