请问这道题怎么知道栈是倒着压开口向下的?题目中没有明确说明啊。这道题应该怎么做?
方开元 人气新星 2016-02-06 09:40:17
2957 4 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开口向上的),大家可以自己画画图】

共 4 个回答

    仰望星空 脚踏实地 资深达人 3027天前

    开口先上先下都可以的,只要一口开一口闭就行

    最佳答案

    张金双 人气红星 3027天前

    m+1>m   suoyi是倒着压得

    每压入一个元素 top指针上移一位

    压入第一个元素    top指针m+1-1=m

    压入第二个元素           m+1-2=m-1

          n                  m+1-n=20

    suoyi  n=m+1-20=m-19                   

    方开元 人气新星 3027天前

    回复 张金双 S(1:50)是什么意思?还有压入一个元素指针上移一位,为什么不是m+1+1?

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

  • 0

    点赞

  • 扫一扫分享朋友圈

    二维码

  • 分享

相关问题