全部问题 > 当前问题

12题还是不太懂,求解

梁莹 2017-2-11 13:12:40

共 2 个回答

卷卷 2017-2-12 13:29:43

这个栈是倒着压的,正常的栈,进入一个元素之后在top值上加一,而这个栈则恰好相反,它是从top=m+1往下压的。所以退出一个元素,top=m+1。 你也可以这么看。经过操作最后,栈内的元素个数=|top初始值-top|=1,退出一个元素之后,栈内没有元素。那么最终的栈内元素个数=|top初始值-top终值|=0,就可以得到,最后top=m+1。

梁莹 2017-2-12 16:19:12

回复 卷卷:懂了,谢谢

问题来自:
设栈的存储空间为S(1:m),初始状态为top=m+1。经过一系列入栈与退栈操作后,top=m。现又在栈中退出一个元素后,栈顶指针top值为( )
A. m+1
B. 0
C. m-1
D. 产生栈空错误
答案:A
解析:栈的顺序存储空间为S(1: m),初始状态top=m+1,所以这个栈是m在栈底,1是开口向上的。所以经过一系列入栈与退栈操作后,top=m,则有1个元素,若现在又退出一个元素,那么栈顶指针下移一位,回到m+1的位置。因此这题选择A。