当前位置: 首页 > 知识库问答 >
问题:

不浪费一个条目或使用计数器的循环队列

孙宏壮
2023-03-14

2.它指向将要插入下一个元素的地方

在这两种情况下,如果我们没有浪费数组的至少一个条目,或者如果我们没有保持计数器计数插入的元素数-删除的元素数,我们就无法区分full和empty队列

共有1个答案

胡越
2023-03-14

您所关心的问题通常被认为是循环队列的满与空的困难。引用:

为了解决这一困惑,有许多解决方案:

  1. 始终保持一个插槽打开。
  2. 使用填充计数来区分这两种情况。
  3. 使用额外的镜像位来区分这两种情况。
  4. 使用读和写计数从。
  5. 获取填充计数
  6. 使用绝对索引。
  7. 记录上次操作。

索引在执行操作时递增,而从不减少。它们本质上是执行的每种类型的操作数的计数器。这还有其他缺点。

#6-记录上次操作

本质上与#3相同,但语义不同。

 类似资料:
  • 我只是用PHP和PDO在MySQL数据库中工作进行了一些实验,我有点困惑为什么在得到结果后,将它们正确地存储在多维数组中,并循环通过它们,它会两次输出其中一个数组数据。 基本上,以下是获取数据的查询: 我希望与此得到1行返回每个家庭,它在PHPMyAdmin查询和print_r()结果时都能正常工作。 然后我存储在: 在执行print_r()时,以及在foreach循环中回显每个条目的ID时,它也

  • 本文向大家介绍使用js实现一个循环队列相关面试题,主要包含被问及使用js实现一个循环队列时的应答技巧和注意事项,需要的朋友参考一下

  • 我需要编写一个程序,要求输入整数和循环,直到输入为负整数,然后程序结束。此外,循环需要计算正整数项的总数,并将所有项相加。代码的计数部分似乎工作正常,但我获取所有条目总和的方法不起作用。 我在代码中尝试的是将total=total输入放在循环的末尾,但这在测试时并没有给出正确的总和。 此外,我的类型安全块只适用于第一次进入;如果我在整数后输入一个字母,程序就会崩溃。这不应该在每个条目的开头回到类型

  • 假设我有一个大小为[10]的数组,当该数组被填满时,我想实现一个FIFO结构,而不是它只是填满了,因此无法向数组中添加新的东西,并抛出旧的东西。 例如,如果我有一个包含汽车制造商的字符串数组,当我的数组中有10个制造商时,我希望删除最旧的条目,添加最新的条目,但要考虑kepping FIFO。我如何在这样的方法中实现它:

  • 当在我的电子商务网站上呈现我的“产品”详细信息时,我希望我的for循环在满足三次条件后结束。 我希望第二个for循环,即中,一旦满足if条件,即满足三次。但是我设置为0的计数器会重复增加到1,而不是随着for循环递增。因为它里面有一个if条件,我也不能使用forloop.counter。我希望这个过程在第一个for循环的每次迭代中重复,即

  • 我正在从Sahni的“C语言数据结构基础”中学习数据结构。在使用动态数组的循环队列中,作者提到了以下几点, 假设capacity是循环队列的初始容量,我们必须首先使用realloc增加数组的大小,这将把最大容量元素复制到新的数组中。为了获得正确的循环队列配置,我们必须将右段中的元素(即元素a和B)滑动到数组的右端(参见图3.7.d)。数组加倍和向右滑动一起最多复制2*容量-2个元素。