有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

循环队列使用无计数方法的数组。(爪哇)

我已经用count成功地实现了它,我正在学习的这本书只显示了代码,但没有任何适当的解释

我试着在谷歌上搜索,但找不到解释它的材料

据我所知,如果阵列是空的或满的,前后点将假定在同一位置,因此我们在阵列中使用一个额外的插槽“进行某种检查,我不理解如何完成”

有人有这方面的指导吗?我很抱歉,如果这是在等待别人给我提供信息,但我真的找不到任何东西


共 (1) 个答案

  1. # 1 楼答案

    数学很简单:如果你有开始和结束索引,你可以有三种情况:

    • 期末指数较低
    • 起始指数较低,且
    • 索引是一样的

    当结束索引较低时,例如b=10和e=3,所有数据都位于这两个索引之间。你可以通过从开始索引中减去结束索引来计算计数,b-e:在我的例子中,队列中有七个项目

    当起始索引较低时,例如,b=3和e=10,那么数据将绕过队列的末尾。比如说,您的队列的总大小为N=100。那么数据项的数量是b+N-e,或者3+100-10=93个元素

    您最多可以使用N-1个元素的事实来自这两个公式:对于这两个公式,您可以拥有的最大条目数都是N-1,因为当所有N个条目都被填满时,与队列为空时的情况是无法区分的

    您可以通过比较(b+1)%Ne来检查队列是否已满。如果它们相同,则无法将更多数据放入队列