递归过程或函数调用时,处理参数和返回地址,通常使用一种称为( )的数据结构。
这题考的是函数调用机制。拿到题先想:递归一层层往下跳,系统怎么记路?答案就是靠‘后进先出’的结构——栈。每次调用压栈,返回弹栈,完美对应。
很多同学一看到递归就只想到‘栈’,却容易把‘队列’、‘线性表’这些通用术语混进来。队列是先进先出,用来做任务调度或 BFS,跟函数调用顺序完全相反;线性表太笼统,不体现‘后进先出’的核心特征。还有同学会纠结于数组,其实栈在底层常用数组实现,但题目问的是‘数据结构’,不是‘实现方式’,所以选 D 最精准。
题目问的是:递归过程或函数调用时,处理参数和返回地址,通常使用一种称为( )的数据结构。
正确答案是 D. 栈。
当程序调用一个函数(包括递归调用)时,系统需要记住:
这些信息必须被保存起来。当函数执行完毕返回时,这些信息又要被完整地恢复。这就需要一个后进先出(LIFO)的机制:最后压进去的,最先取出来。
栈正是这样的数据结构: