在B站上看韩顺平老师关于数据结构与算法的视频时,在对环形队列进行实现的代码中,有一个公式 (rear + maxSize - front) % maxSize。虽然我认为可以定义一个成员变量,在添加和删除是分别对其进行++ 或 --,但是为了锻炼思维,所以研究了一下这个公式。在对算法的理解中,我主要是带入实例进行思考,所以下面将以实例进行讲解。

  1. 首先是关于 % maxSize 的的理解。假设数组的length 为4,front=2,rear = 3,当还想在队列中添加元素时,是不是要在下标为0的位置添加呢?因此需要rear = 3 再加1之后得到rear = 0,所以采用 %的方式,(rear + 1)%4 =0。同理, % maxSize在这个公式中的作用也是这样。
  2. - front的理解。首先 (rear + maxSize - front) % maxSize代表队列中有效元素的个数。举例解释:如果在队列中取走一个值,有效元素会减一,front下标(该处的front不是指公式中的front,而是指队列中的第一个元素)会加一,因此front与有效元素呈现负相关的关系,所以要以 - front的形式出现在该公式中。
  3. +rear的理解同上。

(rear + maxSize - front) % maxSize 公式的理解相关推荐

  1. 区间再现公式的理解与应用

    前往我的主页以获得更好的阅读体验区间再现公式的理解与应用 - DearXuan的主页https://blog.dearxuan.com/2022/05/07/%E5%8C%BA%E9%97%B4%E5 ...

  2. [读书笔记] 从问题和公式角度理解 Diffusion Model

    [小全读书笔记] 从问题和公式角度理解 Diffusion Model 1. Diffusion Model的结构 1.1 定义与限制 1.2 定义与限制的数学体现 2. Diffusion Mode ...

  3. 【单应变换】通过空间平面诱导的单应公式的理解

    [单应变换]通过空间平面诱导的单应公式的理解 公式:H=K2R2(I+(C1−C2)nTnTX)R1−1K1−1H = K_2 R_2(I + \frac{(C_1 - C_2)n^T}{n^TX}) ...

  4. 对傅里叶变换公式的理解

    对傅里叶变换公式的理解 为什么要进行傅里叶变化 很多时候,频域比时域直观的多. 傅里叶变换,表明时域的信号可以分解为不同频率的正弦波的叠加.我们接受来自一段非周期信号的时候,可以更好的处理. 举个例子 ...

  5. pagerank公式的理解

    节点y被a与y所指,所以节点y的重要程度就是将他们汇总起来:节点a指向y的占据了a的一半,因为它还同时指向了节点m:节点y也是同样的道理:节点y也指向了两个节点,一个是自身,一个是节点a: 从另一个角 ...

  6. 傅里叶变换公式_理解1维傅里叶变换

    上个学期,学习了信号与系统.虽然知道了傅里叶变换的作用以及如何使用.但是对于它的本质,也就是FT是如何探测到频率的尚有疑惑. 而恰好在知乎上发现了一些很好的回答.故将这些回答整理在这. 感性理解1维F ...

  7. 错排公式的理解与推导(转载)

    转自: ①:https://www.cnblogs.com/ECJTUACM-873284962/p/7620370.html ②:https://www.cnblogs.com/c129940122 ...

  8. 原码的定义公式怎么理解_原码、反码、补码

    一. 机器数和机器数的真值 在学习原码,反码和补码之前, 需要先了解机器数和真值的概念. 1.机器数 一个数在计算机中的二进制表示形式,叫做这个数的机器数.机器数是带符号的,在计算机用机器数的最高位存 ...

  9. GAN的理论知识及公式的理解

    文章目录 对于GAN的理解 GAN的公式理解 代码实现 参考资料 对于GAN的理解 借用参考资料[1]中对于GAN的描述: 假设一个城市治安混乱,很快,这个城市里就会出现无数的小偷.在这些小偷中,有的 ...

  10. 关于《信号与系统》单边z变换位移性质公式的理解

    关于b站<信号与线性系统分析 郭宝龙>的视频p155中有弹幕提出单边z变换的平移性质相关疑问,考虑到公式实在难记,这里给出理解记忆方案.

最新文章

  1. Linux云服务器上python画图并保存
  2. 让Flash背景透明兼容Firefox、IE 6和IE 7的代码
  3. Altium Designer chapter6总结
  4. 电子美图更新36张!
  5. mysql的介绍和安装
  6. LeetCode 169. 多数元素 (哈希映射|投票算法)
  7. 跨平台移动端开发 NativeScript ——创建JavaScript原生移动应用
  8. 使用Python成功调用大漠插件方法
  9. 小学五年级计算机课评课,小学生信息技术课《复制与变换》评课稿
  10. Unity移动视角(MainCamera的操作)
  11. 高质量编辑和压缩pdf
  12. css3中-moz、-ms、-webkit各什么意思
  13. 【arcgis中两种路网密度计算结果对比】
  14. linux磁盘配额步骤,Linux磁盘配额设置及使用
  15. 1045-Access denied for user 'root'@ip(useing password YES)远程连接
  16. imap服务器收缓存pst文件夹,Outlook 转移OST数据文件 IMAP账户
  17. 双麦定向拾音束回音消除及远场拾音降噪模块 A-68测试1-(原理篇)
  18. 立创EDA助力2021全国电赛数百万奖学金!
  19. MySQL数据库入门学习教程(mysql基础+高级)
  20. Postgresql逻辑复制DDL插件pgl_ddl_deploy

热门文章

  1. 数据预处理之无量纲化、缺失值处理(三)
  2. java如何接收键盘输入_java接收键盘输入(三种方法)
  3. REVIT模型空间句法分析
  4. CentOS 6忘记密码解决方法(三分钟超快o)
  5. 高电平输入好还是rca输入好_汽车音响接高电平还是低电平是什么意思
  6. CCNP-Spanning-Tree
  7. 费马小定理(详细证明)
  8. python获取文件大小
  9. 面向自动驾驶车辆验证的抽象仿真场景生成
  10. 开发基于地图的火车站点查询系统