函数调用栈图解 为什么常用于函数调用的数据结构是栈而不是队列?
浏览量:1610
时间:2021-03-17 22:21:39
作者:admin
为什么常用于函数调用的数据结构是栈而不是队列?
堆栈的先进先出操作序列适用于函数的嵌套调用,而队列的先进先出操作序列不适用。例如:(栈的操作在栈顶完成)main函数调用一个函数,字段参数按栈,栈结构:[[top of stack][call a site][bottom of stack
在a函数调用B函数后:[[top of stack][call B site][call a site][bottom of stack
从B返回时,堆栈的顶部可以获取刚刚进入堆栈的[call B site]参数。当从返回时,[call a site]参数返回到堆栈的顶部并准确地使用。如果它是一个队列,则如下所示:[[queue entry][call B site][call a site][queue exit
从B返回时,队列出口处的[call a site]参数不适用,因此堆栈结构适用于嵌套调用这些算法的数据结构用于分析和循环。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。