回 帖 发 新 帖 刷新版面

主题:关于的堆栈问题?

堆栈(Stack)是一种比较重要的线性数据结构,如果对数据结构知识不是很了解的话,我们可以把它简单的看作一维数组。但是对一维数组进行元素的插入、删除操作时,可以在任何位置进行,而对于栈来说,插入、删除操作是固定在一端进行的,这一端称为栈顶(top),另一端称为栈底(bottom),向栈中插入数据的操作称为压入(Push),从栈中删除数据称为弹出(Pop)。元素的操作是按后进先出(Last In First Out,简称LIFO)的原则进行的,即最后压入的元素最先弹出。
请问push时是否从栈顶压入,pop时是否一定要从栈底出?
堆栈有什么作用?我有寄存器和储蓄器为什么还要堆栈?

回复列表 (共1个回复)

沙发

sp要一直指向栈顶,push和pop都是对栈顶操作的



函数使用的参数就得入栈,还有在函数内使用局部变量

还有当你使用call时,此时的ip寄存器自动入栈,函数结束后在pop出来, 好继续执行下面的指令


我来回复

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