全部问题 > 当前问题

为什么不需要 +1

为什么不需要 +1

李瑞瑞 2018-8-17 12:18:46

共 1 个回答

最佳答案

占俊雄 2018-8-17 14:22:52

栈的顺序存储空间为S(1: m),初始状态top=m+1,说明这个栈是m在栈底,1是开口向上的。这你应该懂了。

而初始状态为top=m+1,这个m+1处是栈的最下面,不能存元素。存元素的只是m+1位置上方的m个位置存取元素。

现经过一系列入栈与退栈运算后,top=20,则当前栈中的元素个数=(m+1)-20=m-19。

假如初始状态为能存取元素的位置,比如为m-1时。这时栈中元素个数为=(m-1)-20+1=m-20。这时要加1.

加不加1是看初始位置存不存元素。             满意请采纳。

问题来自:
设栈的顺序存储空间为S(1: m),初始状态为top=m+1。现经过一系列入栈与退栈运算后,top=20,则当前栈中的元素个数为( )
A. 30
B. 20
C. m-19
D. m-20
答案:C
解析:栈的顺序存储空间为S(1: m),初始状态top=m+1,说明这个栈是m在栈底,1是开口向上的。这题可以假设栈中有x个元素,当X=0时,也就是栈中没有元素,则Top=m+1,当X=m时,也就是栈满,则Top=1,由此可以得出Top=m+1-X,就可以得出X=m+1-Top。 所以说这个时候栈中的元素=m+1-Top,当Top=20时,栈中元素=m-19。所以选择C。 【注意:没有规定栈中栈底必须是0,这个在课程中也说过了。(如果说初始状态top=0,说明这个栈是1在栈底,m开口向上的),大家可以自己画画图】