设栈的存储空间为 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。
如果0作为栈的栈底,并且栈顶指针真好指向栈底元素,在这种情况下我们是可以用直接相减算出来的,也就是说:栈顶-栈底=栈中元素的个数(即:此时计算栈中元素是不需要加1的)
如果栈底不是0的话,如我们可以把10作为栈底或者是除0之外的其他数字比如3作为栈底时,这时候我们在计算栈中元素个数的时候就需要加1了,也就是说:栈顶-栈底+1=栈中元素的个数 同学可以再好好温习下课程哦
回复 陈晓晓:谢谢你。我想说的是:存储空间为 S(1:50),那么,栈顶是不是也应该在(1-50)之间取呢?
点赞
扫一扫分享朋友圈
二维码
分享
你确定要删除这个问题吗?