我们都知道“stack”是一个先排后的数据结构。
但堆栈的逻辑背后是什么。
我们可以在“反向波兰表示法”中看到堆栈的应用,程序调用,使递归不是递归的。
人们如何从这种数据结构中思考,这种数据结构背后的直觉是什么?
谢谢。
答案 0 :(得分:0)
开发堆栈的可能原因是函数调用。函数调用产生的嵌套结构使堆栈适合tee。实际上,您甚至需要进程(或线程)堆栈的唯一原因是处理函数调用。
调用函数的正常顺序是:
函数将堆栈指针移入基址寄存器。 。 。 。 功能可以使呼叫做同样的事情。
函数将基址寄存器值移动到堆栈指针中。
这些都是堆栈操作。
答案 1 :(得分:0)
应根据手头问题的需要选择任何数据结构。您已经确定的问题肯定是堆栈数据结构的适当应用程序的常见示例,但是如果您想一想,您可能会想出其他示例,其中堆栈数据结构可能是最合适的数据结构选择。 / p>
考虑产品/包裹分发中心。传送带可能很乐意将包装好的产品沿着装卸码头移动,但正如人们可能想象的那样,当卡车装满或者卡车装载机(一名员工)不堪重负时,输送机需要停下而不是将包裹倾倒在地板上装卸码头。为了防止包装区域在新卡车回到原位或者装载机从不堪重负中恢复时必须闲置,设施可能会有一个溢流输送机,以90°的角度从主输送机上冲出。当装载机没有从输送机的末端拾取最新的包装时,推进器将下一个包装从输送机推到溢流输送机上,溢流输送机随后将反向运行以将这些包装推回到主输送机上。推入溢流输送机的包裹以FILO顺序返回主输送机。跟踪推入溢流输送机的包装可能是堆栈数据结构的适当应用。