为什么常用于函数调用的数据结构是栈而不是队列

 我来答
郜飙操宛畅
2020-02-10 · TA获得超过3630个赞
知道大有可为答主
回答量:3124
采纳率:35%
帮助的人:193万
展开全部
堆栈的先入后出式操作顺序适用于函数的嵌套调用,队列先入先出则不适用
比如:(堆栈的操作是在栈顶完成的)
main函数调用A函数,现场参数压栈,栈结构:【[栈顶][调用A现场][栈底]】
A函数再调用B函数后:【[栈顶][调用B现场][调用A现场][栈底]】
当从B返回时,在栈顶可以拿到刚才入栈的[调用B现场]参数,从A返回时,[调用A现场]参数这回到了栈顶,正好使用;
如果是队列,则是这样的:【[队列入口][调用B现场][调用A现场][队列出口]】
当要从B返回时,在队列出口的是[调用A现场]参数,无法适用
所以栈的结构是适用于嵌套调用、循环这些算法的数据结构
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式