arrays - 为什么在有界队列中使用数组作为数据结构是个坏主意?

标签 arrays algorithm data-structures queue

我正在考虑使用数组实现有界队列(固定容量)。然后我偶然发现了这个 wiki-article在有界队列上。它提到:

An array is inefficient because of time spent copying items to the front of the queue

我不太明白这是怎么回事?当我们入队或出队时,我们只是将索引更新为头或尾。我们在哪里将项目复制到队列的前面?

最佳答案

没有复制 - 声明不正确。如果您回顾文章的历史,有人拥有确实移动了所有项目的代码,但该代码已被您现在看到的版本所取代,并且不正确的陈述留在那里。此外,那里的 C++ 代码中至少存在一处错误。在 enqueue() 中,条件 if(tail<head+QMAX)永远不会失败,因为给定的代码尾部永远不会大于或等于 QMAX。

关于arrays - 为什么在有界队列中使用数组作为数据结构是个坏主意?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5241697/

相关文章:

c++ - 如果提供了正确的迭代器提示,map/set::insert 的复杂性是多少?

python - 嵌入向量搜索高效算法

java - 丑陋的java数据结构

将行从标准输入复制到字符指针数组

arrays - 将引用和未引用内容混合的文件读取到 bash 数组中,保留引号

c - 算法优化同时

冒泡排序的算法分析

ruby-on-rails - 将元素推送到 ruby​​ 数组中的特定索引处

c# - 十六进制字符串到字节数组 C#

algorithm - 从 3D 浮雕图像中提取深度图