全部问题 > 当前问题

为什么退出一个元素,top值反而大了


梁庭硕 2018-3-8 21:23:27

共 1 个回答

绅士 2018-4-2 21:40:34

初始状态top=m+1,所以这个栈是m在栈底,1是开口向上的假设m=5,此时5已经是栈底,那么初始状态就是top=5+1=6;第一次操作后top=5,然后,再退出一个元素,那么此时指针就在栈底之下一位,也就是6。(很关键的点是要先判断出哪个是开口?)

问题来自:
设栈的存储空间为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。