递归函数溢出---尾递归

递归函数
使用递归函数要防止栈的溢出,函数调用是通过栈这种数据结构来实现的,没进入一个函数,就会多一层栈帧,每执行完一个函数(或者可理解为函数返回),就会减少一个栈帧。但栈不是无限大的,当递归调用太多会导致栈溢出。
解决栈溢出的方法:尾递归。
尾递归是指在函数返回时调用其本身而不是表达式。
使用尾递归,编译器和解释器会进行优化, 栈内只有一帧。
循环可看做特殊的尾递归。

但较遗憾的是,Python解释器并未对尾递归进行优化,任何递归函数都有可能造成栈溢出。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值