回 帖 发 新 帖 刷新版面

主题:请教“支持子程序调用的数据结构是什么”(09年全国二级原题)

09年上半年全国二级VB考试中选择题:
支持子程序调用的数据结构是什么?
A、栈     B、树      C、队列    D、二叉树
参考书上说答案为B、树。因为子程序调用是一种层次关系,子程序调用功能模块,调用功能模块的个数也不清楚,可以是一个,也可以是多个。而A、C答案中元素之间是一种前后件关系,没有层次之分,故不对;D答案只能有两个后件,故不对。
但是我从网上查到如下信息:一个子程序能够供给许多地方使用。这样就产生 了一个问题:如何记忆是从何妙调用的子程序,以便正确返回。在计算机中采用了一种叫做“堆栈”的技术。所谓堆栈就是在存储器中预留一块叫“栈区”的地方,专门用来保存临时的数据。当主程序调用子程序时,计算机执行到CALL指令就自动将下一条指令的地址“压栈”保存到栈区,当子程序结束时,计算机一旦判断到执行的是RET指令,就自动地把刚才保存到栈区的内容“弹出”,作为下一步指令执行的新地址。。。。。这样说来,答案应该是A、栈呀!
还请达人们解答!谢谢!

回复列表 (共3个回复)

沙发

栈只是为子程序调用提供存储空间,而层次调用是树型结构的特点,树型结构为实现它的特点应用了栈技术,所以实现调用的还是数型结构

板凳

说老实话
题目都看不懂

3 楼

二楼的解释很好

希望可以一起学习、一起讨论
QQ:812895261

我来回复

您尚未登录,请登录后再回复。点此登录或注册