栈顶-栈底=30-0=30个元素,这道题为什么栈底是0而非1?1不是在栈底吗?
朱玉娴 铁杆会员 2016-11-27 21:51:33
947 3 1
问题来自:
设栈的存储空间为 S(1:50),初始状态为top=0。现经过一系列正常的入栈与退栈操作后,top=30,则栈中的元素个数为( )
A. 30
B. 31
C. 20
D. 19
答案:A
解析:栈的存储空间为 S(1:50),初始状态为top=0,此时的栈是1在栈底,50是开口向上的,现经过一系列正常的入栈与退栈操作后,栈顶=30,则栈中元素有栈顶-栈底=30-0=30个元素。所以选择A。

共 3 个回答

    陈晓晓 人气红星 助教 2729天前

    如果0作为栈的栈底,并且栈顶指针真好指向栈底元素,在这种情况下我们是可以用直接相减算出来的,也就是说:栈顶-栈底=栈中元素的个数(即:此时计算栈中元素是不需要加1的)

    陈晓晓 人气红星 助教 2729天前

    如果栈底不是0的话,如我们可以把10作为栈底或者是除0之外的其他数字比如3作为栈底时,这时候我们在计算栈中元素个数的时候就需要加1了,也就是说:栈顶-栈底+1=栈中元素的个数 同学可以再好好温习下课程哦

    朱玉娴 铁杆会员 2728天前

    回复 陈晓晓:谢谢你。我想说的是:存储空间为 S(1:50),那么,栈顶是不是也应该在(1-50)之间取呢?

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

  • 1

    点赞

  • 扫一扫分享朋友圈

    二维码

  • 分享

相关问题