全部问题 > 当前问题

课上说:【栈底指向首元素的前一位置】,那这里为什么栈底不指向50呢?

JUSTFORJASON 2016-8-26 01:21:27

共 3 个回答

啪嗒啪嗒 2016-8-26 09:01:20

栈底指向50?

首先题目已经很明确的说明了,栈底指针bottom=49

其次,存储空间是从0到49的,50根本不属于这个栈了

JUSTFORJASON 2016-8-26 14:32:39

回复 啪嗒啪嗒:但是栈底不是指向前一个吗49是栈内最后一个啊

啪嗒啪嗒 2016-8-26 19:12:33

回复 JUSTFORJASON:不能死记硬背的,要具体题目具体分析哦

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