1.理解栈的实质
后进先出(LIFO):最后进入栈的元素最先被访问或者删除。这意味着最近添加的元素最先被移除,就像一叠盘子,你只能访问或者移除最顶端的盘子。
递归的实质:
-
递归调用:在解决子问题的过程中,递归函数会不断地调用自身,以处理更小规模的子问题。这种自我调用是递归的核心特征。
-
递归栈:在执行递归调用时,计算机会使用内存中的递归栈来存储每次递归调用的状态。每个递归调用都会将一部分信息(如参数、局部变量)推入栈中,并在返回时将其弹出。
-
内存消耗:递归算法在执行过程中会占用额外的内存空间来维护递归栈,因此对于深度较大的递归调用可能会导致栈溢出或者消耗大量内存。
2.代码
3.代码说明
采用递归函数来解决加法问题
示意图;