⑴ 堆栈的栈底和栈顶是什么关系
堆栈的栈底和栈顶是相对的。一端被称为栈顶,相对地,就把另一端称为栈底。
栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。一端被称为栈顶,相对地,就把另一端称为栈底。
堆栈按照先进后出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)。栈具有记忆作用,对栈的插入与删除操作中,不需要改变栈底指针。
(1)栈在物理上是什么扩展阅读:
计算机中的堆栈主要用来保存临时数据,局部变量和中断/调用子程序程序的返回地址。在栈操作过程中,有一个专门的栈指针(习惯上称它为TOP),指出栈顶元素所在的位置。堆栈指针总是指向栈顶元素。堆栈可以使向下生长的(向低地址),也可以是向上生长的颤答卜。
如果堆栈是向上生长的,数据入举芦栈的时候,堆栈指针先加1,再压栈。出栈的时候先弹出数据,堆栈指针再减1。如果堆栈是向下茄穗生长的,数据入栈时指针将减1,数据出栈时指针将加1。
⑵ 数据结构分为逻辑结构和储存结构,循环队列和栈分别属于什么结构
循环队列和栈都是线性结构,是逻辑结构的一种。而存储结构是数据在计算机中的表示,循环队列在计算机内是顺序存储结构,栈在计算机内可是以顺序也可以是链式。所以循环队列和栈都是线性逻辑结构,不能说循环队列和栈是存储结构,只能说它们在计算机内的存储结构
⑶ 汇编里push入栈的栈顶物理上位于哪里入栈后栈顶指针为什么应该减一
在8086汇编里,push入栈的栈顶,物理上的地址由段地址寄存器SS和堆栈指针寄存器SP确定。字节型数据入栈后栈顶指针减一,一方面为皮隐搭下次堆燃拿栈操作做准备,另一方面说明堆栈的结构是自底向上的。注意,堆栈指针根据指令操作数自动调整,但不见得携雀一定是加减1.