c语言二级这道题 怎么做 望大神求教 回答满意增加悬赏

 我来答
鳥山小明cC
2015-03-09 · 超过13用户采纳过TA的回答
知道答主
回答量:34
采纳率:100%
帮助的人:21.7万
展开全部

a入栈则栈为:axxxxxxxxxx top->a  a所在的位置为m

b入栈则栈为:abxxxxxxxx  top->b  b所在的位置为m-1

所以top->20的时候 总的长度是 m-20+1 = m-19


top = m+1;表示空栈,这是一个递减的栈。

top = 1;表示栈满

入栈函数:

//1表示入栈成功,0表示入栈失败
int InStack(int S[],int q){
    if(top != 1){
        S[--top] = q;    //top先自减
        return 1;
    }else{
        return 0;
    }
}
追问
ht知道tp://zhidao.baidu.知道com/question/2075014109073891788.html  悬赏在这里 去掉知道两字 你稍稍回答一下  就采纳 悬赏不够我在开贴 我不是计算机专业的 好多问题搞不懂 以后如果有问题 怎么问你啊 放心 肯定会 有报酬的  money 或者其他 我们可以商量  百度页面右上角百度私信交流一下 好吗??
zhuaibuzhu
2015-03-09 · 超过14用户采纳过TA的回答
知道答主
回答量:45
采纳率:0%
帮助的人:14.3万
展开全部
一道选择题而已,搞这么复杂!假定m=20;那么top从21变成了20.因为S(1:20),所以栈中还有1个元素,看看哪个选项是1;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2015-03-08
展开全部
C,顺序存储空间是S(1:m),初始状态的top=1+m,当top=20时,你可以认为是计算20到m+1之间的间隔(例如1到3之间的间隔就是1和2之间的间隔,2和3之间的间隔,3-1=2),所以是m+1-20=m-19.
更多追问追答
追问
请问 当top=20时 栈里的元素 不就是从bottom到top指针 里的元素  为什么会是 20到m+1之间的间隔  这里的应该已经退栈了啊 就是被删除了啊  我是这里不理解  望求解答
追答
1才是栈底(bottom),这里还没有到bottom,而是在20的地方,top是m+1,所以bottom到top指针里的元素就是20到m+1之间的间隔。你自己画一个图,可能就更加清楚了,我这里不好画。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式