不懂
DRENCHED 核心会员 2015-09-13 17:07:03
2646 2 0

栈的顺序存储空间为S(1: m),而且现经过一系列入栈与退栈运算后,top=20,栈中共有元素=m-19个,因为栈是倒着压的,开口向下。所以选择C。

问题来自:
设栈的顺序存储空间为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开口向上的),大家可以自己画画图】

共 2 个回答

    啦啦啦 人气新星 3173天前

    栈中元素个数=栈顶指针-栈底指针

    这个公式只针对两个情况哦,

    一是栈的顺序存储空间为S(1: m),初始状态为top=m+1

    二是栈的存储空间为 S(1:50),初始状态为 top=0

    因为这两者情况一种是开口向下的栈底为0,一种是开口向上的栈底为0

    其他情况都是需要+1的 

    明白了吗?套用这个公式就可以哦

    有帮助的话,请采纳啦

    高婧前 人气红星 3173天前

    栈中现在的元素个数 = 初始状态的个数 - 一系列入栈退栈的个数

    所以 现在就为 = (m + 1) - 20 = m - 19

    明白了吗

    满意请采纳 么么哒

     

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

  • 0

    点赞

  • 扫一扫分享朋友圈

    二维码

  • 分享

相关问题