问题
单项选择题
调用递归过程或函数时,处理参数及返回地址需要用一种称为()的数据结构。
A.队列
B.栈
C.多维数组
D.顺序表
答案
参考答案:B
解析:
本题考查数据结构基础知识。在函数调用过程中形成嵌套时,则应使最后被调用的函数最先返回,递归函数执行时也是如此。例如,用递归方式求4的阶乘(以factorial(n)表示求n的阶乘)的过程如下所示:
factorial(4)=4*factorial(3)
=4*(3*factorial(2))
=4*(3*(2*factorial(1)))
=4*(3*(2*1))
=4*(3*2)
=4*6
=24
显然,要求4的阶乘,需要通过递归调用求出3的阶乘,要求出3的阶乘,必须先求出2的阶乘,依此类推,求出1的阶乘后才能得到2的阶乘,然后才能得到3和4的阶乘。该求解过程中的函数调用和返回需要满足后调用先返回的特点,因此需要使用栈结构。