函数调用栈:最后被调用的函数最先执行结束。
函数调用的特点:后进先出(LIFO)
函数调用时,需要一个栈存储,存储内容有:
(1)函数返回地址
(2)实参
(3)局部变量
每进入一层递归,就将递归调用所需信息压入栈顶。
每弹出一层递归,就将弹出相应信息。
递归算法:
使用递归时可能包含很多次重复计算。
太多层递归可能导致栈溢出。
注意:对于python来说,可以直接用列表代替栈和队列的功能。当使用pop和append时就是栈,当使用insert(0,…)和append时就是队列。