题目
递归过程或函数调用时,处理参数及返回地址,要用一种称为( )的数据结构。A. 队列B. 多维数组C. 栈D. 线性表
递归过程或函数调用时,处理参数及返回地址,要用一种称为( )的数据结构。
A. 队列
B. 多维数组
C. 栈
D. 线性表
题目解答
答案
C. 栈
解析
考查要点:本题主要考查对数据结构在程序执行中的应用的理解,特别是函数调用和递归过程中参数与返回地址的管理机制。
解题核心思路:
函数调用时需要保存参数、局部变量、返回地址等信息,而递归调用会形成嵌套的调用链。栈(先进后出)的特性能够确保每次函数调用后,返回时能正确恢复上一层调用的环境,这是其他数据结构(如队列、线性表)无法满足的。
破题关键点:
- 栈的特性:后进先出,适合处理嵌套结构(如递归)。
- 函数调用机制:每次调用将当前状态压入栈,返回时弹出栈顶状态。
选项分析
A. 队列
队列是先进先出(FIFO)的结构,无法保证返回地址的顺序与调用顺序一致。例如,若函数A调用函数B,再调用函数C,队列会导致先返回函数A,而实际应先返回最内层的函数C,因此错误。
B. 多维数组
多维数组是静态存储结构,无法动态管理函数调用的嵌套层次,且不支持高效的压入/弹出操作,与函数调用机制无关。
C. 栈
栈是先进后出(FILO)的结构,每次函数调用将当前状态(参数、返回地址等)压入栈顶,返回时弹出栈顶状态。递归的嵌套调用天然符合栈的顺序,因此正确。
D. 线性表
线性表是元素按顺序排列的结构,通常用于数据存储而非动态管理调用链,且不支持高效的回溯操作。