全部问题 > 当前问题

设栈的顺序存储空间为s(1,m)初始状态为top=m+1 ,经过一系列出栈入栈后top=20,求当前栈中元素个数(这一类题怎么做啊,求大神支招)


李静 2016-2-1 18:26:43

共 2 个回答

最佳答案

青栀如初 2016-2-1 18:38:05

亲爱哒

  不好意思,刚刚才看到题

 应该有m-19个元素就对了

    S(1:m )是指:栈哒栈底为1,栈顶为m的意思

    在这个题目中,我们说:这个栈是倒压着哒(栈遵循哒原则是“先进后出”的原则(也就是先进去哒元素最后出来)

   栈的主要性质就是先进后出,就像叠碗一样,要把下面的碗拿掉,需先把上面的拿掉一样,如果你这样理解哒话,应该就好理解了。

    所以我们说:栈是倒压着哒

这个题目,你想如果放了一个元素,那么TOP就等于m+1-1 =m

放两个元素,Top就等于 m+1-2=m-1

现在Top=20 也就是m-19 

所以选C,也就是m-19而不是19

 也就是向上生长堆栈和向下生长堆栈之分

 根据题意,栈空间如图所示:


巴巴爸爸.jpg

也就是说,栈是向上增长的,每次压入一个元素,栈的TOP指针向上移动一位。

当压入第一个元素时,TOP指针指向m+1-1 = m

当压入第二个元素时,TOP指针指向m+1-2 = m-1

......

以此类推,

当压入第N个元素时,TOP指针指向m+1-N = 20

则N = m+1-20 = m-19

选C。

亲爱哒,望采纳哟,么么哒亲爱哒!

李静 2016-2-2 15:00:26

谢谢 摸摸哒

问题来自: