* 保存方法: 递归函数被调用时,系统在运行递归函数前也要保存上述两类信息。但因为递归的函数的运行特点,是最后被调用的函数要最先被返回,若按非递归函数那样保存信息,显然要出错。 由于堆栈的后进先出特性正好与递归函数调用和返回的过程吻合,因此,高级程序设计语言利用堆栈保存递归函数调用的信息,系统用于保存递归函数调用信息的堆栈称为运行时栈。 运行时栈示意图 栈顶 栈底 局部变量m 返回地址m 参 数m …… …… …… 局部变量2 返回地址2 参 数2 局部变量1 返回地址1 参 数1 * 递归函数被调用时,在每进入下一层递归调用时,系统就建立一个新的工作记录,并把这个工作记录进栈成为运行时栈新的栈顶;每返回一层递归调用,就退栈一个工作记录。 因为栈顶的工作记录必定是当前正在运行的递归函数的工作记录,所以栈顶的工作记录也称为活动记录。 工作记录 活动记录 运行时栈示意图 栈顶 栈底 局部变量m 返回地址m 参 数m …… …… …… 局部变量2 返回地址2 参 数2 局部变量1 返回地址1 参 数1 我们以计算阶乘的递归函数为例,说明递归函数调用时运行时栈中工作记录的变化过程。 * long Fact( int n) { int x; long y;
您可能关注的文档
最近下载
- 2026广东广州市南沙区事业单位招聘高校毕业生15人(第三批)考试模拟试题及答案解析.docx VIP
- 2026广东广州市南沙区事业单位招聘高校毕业生15人(第三批)笔试备考试题及答案解析.docx VIP
- 丹毒患者的护理查房.docx VIP
- 战略管理_制药_麦肯锡_P181页-GNC中国市场进入战略_中国保健品市场研究报告f.pptx VIP
- 2026广东广州市南沙区事业单位招聘高校毕业生15人(第三批)考试参考题库及答案解析.docx VIP
- 2026广东广州市南沙区事业单位招聘高校毕业生15人(第三批)考试备考题库及答案解析.docx VIP
- 废水在线监测运维员岗位技能考试试卷及答案.doc VIP
- 在线监测设备运维员岗位技能考试试卷及答案.doc VIP
- 广州市南沙区事业单位招聘高校毕业生考试真题及答案.docx VIP
- 中药的新药临床研究一般原则.docx VIP
原创力文档

文档评论(0)