本章内容
递归:调用自身的函数,是很多算法都在使用的编程方法
递归的核心:基线条件(base case)和递归条件(recursive case)
递归的缺点:占用大量空间,容易导致无限循环。
优化递归的方法:使用循环,用尾递归
栈(stack):有两种操作-压入&弹出
调用栈:用于存储多个函数变量
调用栈时,计算机首先为该函数调用一块内存。调用另一个函数时,当前函数暂停并处于未完成状态。
递归调用栈
def fact(x):
if x == 1:
return 1
else:
return x*fact(x-1)
调用栈的流程图