浅谈栈与递归

一 递归的定义

函数在运行中直接或者间接地调用自身函数


二 递归的设计

(1)将一个大规模问题分解为一个个小的问题(分之策略)

(2)确定终止条件(无需求解的最小子问题)

【例】非负整数n的阶乘可递归定义为:



三 栈和递归在内部的配合

(1)调用函数时:系统会为调用者构造一个由参数表和返回地址组成的活动记录,并将其压入到系统提供运行栈的栈顶,,然后将程序的控制权转移到被调用函数

若被调函数有局部变量,则在运行时刻栈的栈顶也要为其分配相应的空间。因此,活动记录和这些局部变量形成了一个可供被调函数使用的活动结构。

(2)被调函数执行完毕时:系统将运行时刻栈栈顶的活动结构退栈,并根据退栈的活动结构中所保存的返回地址将程序的控制权转移给调用者继续执行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值