首页 > 试题广场 >

设栈的顺序存储空间为 S(1:m) ,初始状态为 top=m

[单选题]

设栈的顺序存储空间为 S(1:m) ,初始状态为 top=m+1 。现经过一系列正常的入栈与退栈操作后, top=0 ,则栈中的元素个数为(

  • 不可能
  • m+1
  • 1
  • m
这题就是挖坑让我们跳啊!
发表于 2017-03-08 17:33:16 回复(0)
我的理解是初始指向m+1没有问题,错误在于总共50,top指针最小只能指到1
编辑于 2017-03-23 16:42:47 回复(0)
“牛100“的说法是不对的,“蒲公英"说的对
初始指向m+1是没问题的,只是最后只能指向1

发表于 2017-08-21 16:43:21 回复(2)
这题入栈操作可以理解为:
s[--top] = x;
出栈操作:
++top;
top初值是m+1,表示栈为空。
top最后值是1,表示栈为满。
所以不可能为有top=0。
发表于 2017-09-21 15:57:14 回复(0)
这种题好没意思
发表于 2017-08-14 16:30:48 回复(0)

栈是一种特殊的线性表,它所有的插入与删除都限定在表的同一端进行。入栈运算即在栈顶位置插入一个新元素,退栈运算即取出栈顶元素赋予指定变量。栈为空时,栈顶指针 top=0 ,经过入栈和退栈运算,指针始终指向栈顶元素,栈满时, top=m 。初始状态为 top=m+1 是不可能的。故本题答案为 A 选项。

发表于 2017-02-13 00:58:23 回复(1)
top=m+1;总共有m个数,全部退出  top=1  不可能为0
有的栈 当总共m个数时,top可以指向top=m;  当栈元素退空时,top=0
发表于 2018-07-04 12:27:42 回复(0)
栈是一种特殊的线性表,它所有的插入与删除都限定在表的同一端进行。人栈运算即在栈顶位置插入一个新元素,退栈运算即是取出栈顶元素赋予指定变量。题目中初始状态为top=m+1,可知入栈栈顶指针top=top一1,出栈栈顶指针top=top+1,由于栈长为m,当top=1时栈满,不能再进行人栈操作。故选A选项。
编辑于 2018-03-20 16:10:50 回复(0)
加入正序存储,10个空间则栈满时栈顶指针为9即(容量+初始指针位置)为满栈位置,倒序存储满栈位置为(初始位置-容量)
发表于 2017-08-17 15:51:09 回复(0)
两种情况:
1.top的值为栈顶元素的索引,但top的初始化值为m+1,即越界,则答案为A(如果改变初始值可能会是BCD中的一个)。
2.top的值为栈顶元素的下一个元素的索引,由于S第一个索引是1,如果所有元素全部出栈,即空栈时,top=1,不可能是0,则答案为A。
发表于 2019-04-28 18:13:14 回复(0)
指针最小只能到1
发表于 2019-03-24 23:59:42 回复(0)
智商被按在地上摩擦..
发表于 2018-11-28 11:06:24 回复(0)
top=1时已经栈空了!
发表于 2018-11-04 10:05:02 回复(0)
一般用一维数组简化栈结构时,栈底为a[0],此题新颖,让人为之一振
发表于 2018-10-01 16:05:36 回复(0)
不可能有top=0的情况
发表于 2018-09-16 21:04:54 回复(0)
首先,刚开始没理解题目是什么意思,也有疑惑,栈底不就是1吗,最后栈为空时,栈顶和栈底重合,也应该是 1,懵逼了还以为是功夫不到家,然后不知道咋选,最后,错了,就是A. 不可能
发表于 2018-05-04 14:36:45 回复(0)
哪里能够出现0啊
发表于 2018-04-28 16:33:15 回复(0)
初始状态可能是满的,也可能是空的,前者栈向上生长,整体是在做出栈操作,后者栈向下生长,整体是在做入栈操作;
发表于 2018-04-02 16:41:57 回复(0)
为什么m+1是对的?不理解。。。谁能说明下理由呀?
发表于 2018-03-11 11:30:41 回复(0)
栈滴为m, 初始 top=m+1 是不可能的
发表于 2017-09-06 10:40:18 回复(0)