美文网首页
队列有效个数计算

队列有效个数计算

作者: beautiful被注册了 | 来源:发表于2020-09-03 18:00 被阅读0次

1.准备
front 就指向队列的第一个元素, 也就是说 arr[front] 就是队列的第一个元素。
front 的初始值 = 0。
rear 指向队列的最后一个元素的后一个位置.,因为希望空出一个空间做为约定。
rear 的初始值 = 0。
arrSize为循环数组长度。

2.推导
由于循环队列可循环使用,所以循环队列的有效长度为分为两种情况:

1.rear > front

有效长度 = rear - front

2.rear < front

有效长度 = front - rear

简而言之就是有效长度为rear与front之间差的绝对值,有效长度 = | rear - front |。

但是计算机中无法使用取绝对值的运算,但是可以利用取模运算符巧妙地实现有效长度的运算:

有效长度 = | rear - front | = | rear % arrSize - front % arrSize | = | rear % arrSize - front % arrSize + 0 | = | rear % arrSize - front % arrSize + arrSize % arrSize | = | (rear + arrSize - front) % arrSize |

由于rear + arrSize - front > 0,所以

有效长度 = (rear + arrSize - front) % arrSize

相关文章

  • 队列有效个数计算

    1.准备front 就指向队列的第一个元素, 也就是说 arr[front] 就是队列的第一个元素。front 的...

  • 蓝杯二十二

    /*队列操作问题描述?队列操作题。根据输入的操作命令,操作队列(1)入队、(2)出队并输出、(3)计算队中元素个数...

  • 蓝桥杯 算法提高 队列操作 c++

    问题描述队列操作题。根据输入的操作命令,操作队列(1)入队、(2)出队并输出、(3)计算队中元素个数并输出。输入格...

  • 利用链表实现队列

    队列成员变量: 队列长度 队列头节点 队列尾节点队列方法: 队列包含元素个数 队列是否为空 进队操作 出队操作 d...

  • 机试常用算法和题型-栈和队列专题

    堆栈+ordermap使用括号匹配 堆栈使用简单计算器 栈+队列实现中缀转后缀,计算后缀表达式 栈+队列计算,包括...

  • 计算字符个数

    C: 18分钟AC,有点慢,主要的点是 大小写不区分,对ASCII表没那么熟悉,所以花了些时间并百度了ASCII...

  • 计算字符个数

    题目描述 写出一个程序,接受一个由字母和数字组成的字符串,和一个字符,然后输出输入字符串中含有该字符的个数。不区分...

  • 年龄个数计算

    给你一个包含全国人民年龄数据的文件,需要你统计出每个年龄有多少人?给定机器为单台2cpu+2G,如何快速得知每个年...

  • 数学判断大师

    数学判断大师是一个数学计算题判断错误的app,在你判断这道题是否正确的时候,可以有效提升你的数学计算水平。 玩法说...

  • Python经典面试题: 用3种方法实现堆栈和队列并示例实际应用

    介绍 数据结构在计算机中组织存储,以便我们可以有效地访问和更改数据。 堆栈和队列是计算机科学中定义的最早的数据结构...

网友评论

      本文标题:队列有效个数计算

      本文链接:https://www.haomeiwen.com/subject/dxyosktx.html