java - 使用循环数组实现队列

标签 java data-structures

我在互联网上找到了这些算法,但我不明白为什么在入队方法中我们将大小与 N-1 进行比较???请帮助我谢谢!!

Algorithm size():
return (N-f+r)mod N



Algorithm enqueue(e):
if size()=N-1 then
   throw a FullQueueException
Q[r]<---e
r<----(r+1)mod N

最佳答案

您提供了一个非常损坏(且不正确)的实现。

话虽这么说,数组中的循环队列通常从给定索引开始,到另一个给定索引结束(因此是 f 和 r)。但是,无论您做什么,队列中的项目数都不能多于基础数组中的项目数。

这里的 size 函数应该计算队列中元素的数量。如果该数字危险地接近数组总大小,则队列已满。

关于java - 使用循环数组实现队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2981045/

相关文章:

python - 用于存储键值对并快速检索最低值的键的数据结构

java - 必应翻译 API 无法正常工作

Java Active Remote Compiler (JARC) - 未绑定(bind)异常

c++ - "&"和通过引用传递

python - 字典和哈希表之间的真正区别是什么?

java - Java中两个集合的笛卡尔积

c++ - 如何在编译时检查结构的大小?

java - 在 servlet 中获取请求 URL

java - 在没有自定义样式的情况下在 Android Spinner 中的项目之间添加更多空间?

java - Eclipse 重命名不能完全工作