计算栈的元素数量时分不清何时要加一 何时就不用加一。谢谢
无论数字大小都是栈底-栈顶。数字为正,则就是元素个数,若提示栈顶指向元素,则加1,,否则不加。记得好像是栈顶一般不指向元素。数字为负,则加上总得容量即可。谢谢!
亲爱哒
不好意思,刚刚才看到问题
【第一种情况】
如果0作为栈的栈底,并且栈顶指针真好指向栈底元素,在这种情况下我们是可以用直接相减算出来的,也就是说:栈顶-栈底=栈中元素的个数(即:此时计算栈中元素是不需要加1的)
【第二种情况】
如果栈底不是0的话,如我们可以把10作为栈底或者是除0之外的其他数字比如3作为栈底时,这时候我们在计算栈中元素个数的时候就需要加1了,也就是说:栈顶-栈底+1=栈中元素的个数
所以我们说:在做栈有关的题型时我们要根据栈顶和栈底的不同情况选择相应的公式,也就是说:我们需要结合实际去做题,而不能只记一个公式。
那么接下来我们再来看这道题:由于栈底指针bottom=49吧(也就是说:栈底指针不为0)这时候我们就需要在计算栈中元素个数是加1的
也就是说:栈中元素的个数=栈顶指针-栈底指针+1=20
所以我们选择C选项就可以了
亲爱哒“望采纳哟!”如果以后还有什么不懂哒问题我们还可以一起讨论哟,相信我们一定会把问题解决哒。
亲爱哒:“新年快乐哟!”祝你在新哒一年里开开心心乐常在,健康幸福永相随,么么哒亲爱哒*^_^**^_^**^_^*
设栈的顺序存储空间为S(0:49),栈底指针bottom=49,栈顶指针top=30(指向栈顶元素)。则栈中的元素个数为( )
A. 30
B. 29
C. 20
D. 19
答案:C
解析:设栈的顺序存储空间为S(0:49),栈底指针bottom=49,栈顶指针top=30(指向栈顶元素),那这个栈也应该是49在栈底,0在开口向上的,所以栈顶30是小于栈底的,则栈中元素=|栈顶-栈底|+1,则栈有20个元素。因此选择C。 【其实这个公式换算一下也是可以写成:元素数量=栈底-栈顶+1,或者写成:元素数量=栈底+1-栈顶,而这里的栈底+1,其实指向的就是栈底49下面的位置。虽然换算之后结果都是一样的,但公式不要死记硬背,一定要结合题目来看,把题目弄明白才是关键】