C语言计算机二级考试循环队列元素个数怎么算

如图所示,两个题目,为什么元素一个有带m去减,另一个却没?搞不懂... 如图所示,两个题目,为什么元素 一个有带m去减,另一个却没?搞不懂 展开
 我来答
匿名用户
2018-02-19
展开全部
循环队列
Q[0:m]是
首先 队列一开始是
front = rear = m,所有队列都是x,表示无效数据。
【1】【2】【3】【4】.......【m-1】【m】
【x】【x】【x】【x】.......【x 】【 x 】
如果插入一个数据 【a】表示有效数据
那么 front = 1, rear = m
【1】【2】【3】【4】.......【m-1】【m】
【a】【x】【x】【x】....... 【 x 】【x】
接着在插入一个数据 【b】表示有效数据
那么 front = 2, rear = m
【1】【2】【3】【4】.......【m-1】【m】
【a】【b】【x】【x】.......【 x 】【x】
我们看到 front < rear,这时候有两个数据,你可以想象成 是在rear后面插入到 【m+1】和【m+2】位置,意味着 front在此时的意义相当于 front + m, 因此 数据个数是 front+ m - rear = 2,这就是为什么要计入m,当 front < rear。
接下来我们删除(pop)一个数据,
那么 front = 2, rear = 1
【1】【2】【3】【4】.......【m-1】【m】
【x】【b】【x】【x】.......【x 】【x】
这时候数据总个数是1, front - rear = 1;由于 front > rear ,这时候就不需要加 m了。
ouyang1917
2018-02-11 · TA获得超过237个赞
知道小有建树答主
回答量:529
采纳率:66%
帮助的人:169万
展开全部
首尾相等的话 就是为零
更多追问追答
追问
与题意无关。。
追答
你没有图
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式