堆栈的先入后出式操作顺序适用于函数的嵌套调用,队列先入先出则不适用
比如:(堆栈的操作是在栈顶完成的)
main函数调用A函数,现场参数压栈,栈结构:【[栈顶][调用A现场][栈底]】
A函数再调用
B函数后:【[栈顶][调用B现场][调用A现场][栈底]】
当从B返回时,在栈顶可以拿到刚才入栈的[调用B现场]参数,从A返回时,[调用A现场]参数这回到了栈顶,正好使用;
如果是队列,则是这样的:【[队列入口][调用B现场][调用A现场][队列出口]】
当要从B返回时,在队列出口的是[调用A现场]参数,无法适用
所以栈的结构是适用于嵌套调用、循环这些算法的
数据结构。