怎么知道这个栈是倒着压的?
莫彩霞 资深达人 2016-02-27 22:24:29
2846 5 0
问题来自:
设栈的顺序存储空间为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开口向上的),大家可以自己画画图】

共 5 个回答

    陆昕 资深达人 3006天前

    因为初始状态是m加1,而栈的最大容量是m,由此可知栈是倒压的

    邢苗苗 铁杆会员 3006天前

    回复 陆昕:其实我不明白倒压。。。 top 就是指元素个数了??


    陆昕 资深达人 3006天前

    倒压就是栈底在上面即封口的那一端在上,出口的那一端在下,top指的是栈顶,并不是元素个数

    青栀如初 资深大师 3006天前

    亲爱哒

      不好意思,刚刚才看到问题

      亲爱哒,我们说:由于栈中的元素都采用“先进后出”的原则也就是说,在栈的进栈和出栈的运动中,栈中最先进去的元素最后才能出来,而最后进的元素是最先出来的,它和我们在讲队列的时候是正好相反的,我们在讲队列的时候说:队列中的元素采用的是“先进先出”的原则,而栈中元素的进栈和出栈与其正好相反,所以我们根据栈中元素的运动状态可以知道:栈是倒压着的

      亲爱哒“望采纳哟!”如果以后还有什么不懂哒问题我们还可以一起讨论哟,相信我们一定会把问题解决哒,么么哒亲爱哒!

    莫彩霞 资深达人 3003天前

    回复 青栀如初:不好意思,我还是不懂啊,能结合这道题再做详细一点的分析吗?谢谢你啦!

您还没有登录,所以不能回复该问题
我要回复

  • 0

    点赞

  • 扫一扫分享朋友圈

    二维码

  • 分享

相关问题