全部问题 > 当前问题

这里为什么还要加一?

2015-9-12 21:47:19

共 4 个回答

最佳答案

嘿嘿大人 2015-9-12 21:56:18

栈的规则有两种情况

第一种初始top不在存储空间里面,元素个数=|初始top-操作后top|

第二种初始top在存储空间里面,元素个数=|初始top-操作后top|+1(因为初始top所指的那个空间里面本身也存放了一个元素所以要加一)

嘿嘿大人 2015-9-12 22:01:37

说具体点这道题可以把公式写具体点就是

第一种初始top不在存储空间里面,元素个数=|top-bottom|

第二种初始top在存储空间里面,元素个数=|top-bottom|+1

道理都是一样的


2015-9-12 22:03:43

回复 嘿嘿大人:谢谢了~

嘿嘿大人 2015-9-12 22:03:54

回复 :不用谢,加油吧,嘿嘿

问题来自:
设栈的顺序存储空间为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下面的位置。虽然换算之后结果都是一样的,但公式不要死记硬背,一定要结合题目来看,把题目弄明白才是关键】