栈的问题

第一题:假设一长度为50的数组(数组元素的下标从0到49)作为栈的存储空间,栈底指针bottom指向栈底元素,栈顶指针top指向栈顶元素,如果bottom=49,top=... 第一题:假设一长度为50的数组(数组元素的下标从0到49)作为栈的存储空间,栈底指针bottom指向栈底元素,栈顶指针top指向栈顶元素,如果bottom=49,top=30(数组下标),则栈中具有多少元素?
第二题:设某循环队列的容量为50,如果头指针front=45(指向队头元素的前一个位置),尾指针rear=10(指向队尾元素),则该循环队列中共有多少元素?
求解题过程和方法,越详细越好,谢谢了
展开
 我来答
xuxu0002
2013-03-24 · TA获得超过6562个赞
知道大有可为答主
回答量:1467
采纳率:50%
帮助的人:483万
展开全部
对栈的操作是很麻烦的,而且不同的栈,栈底和栈顶的定义不同。
根据第一题的题意和答案,应该理解为:
ACCESS中栈顶指针TOP中不存储数据元素,只是指向栈顶,为下个数据进栈提供地址。当一个数据要插入栈中时,
top.data=数据。top=top-1;
此题中bottom=49,top=30。top中无数据,最后一个进栈的数据存在 31 中。所以只有19个元素。

bottom-top=49-30=19,所以栈中有19个元素,
更多追问追答
追问
你算的是对的,那么第二个怎么解呢?还有啊,答案说:栈中的元素等于栈底减去栈顶,这句话对不对啊?
追答
用“尾指针减去头指针”,如为负数则加上容量即可!即10-45+50=15。
解析:
队空的时候front=rear=0;队列元素从队尾入队,从队头出队!
front=45说明出队的元素是45个,rear=10说明入队的元素是10个,入队的减去出队的明显是负数-35,不合常理,所以队列原本里面是满的即容量50,50-45+10即是15个元素

简单的说,栈中的元素等于栈底减去栈顶,是对的
百度网友0199eae7a
2013-03-24
知道答主
回答量:19
采纳率:0%
帮助的人:15.6万
展开全部
bottom=49,假设数组为a[],则a[49]作为栈底,top指向栈顶元素的下一个位置,元素数为bottom-top=19

循环队列元素数n=(rear-front+M)%M,M为队列的最大容量,所以m=(10-45+50)%50=15,如果不明白呢,就画一个容量为6的循环队列,随意设置其中的元素,你就会发现规律。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
伤我中国心
2013-03-24 · TA获得超过112个赞
知道答主
回答量:233
采纳率:0%
帮助的人:146万
展开全部
1,49-30+1=20;
2,45-10+1=36;
追问
额,朋友,你算的跟答案都不一样
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式