问题标签 [deque]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
11072 浏览

python - Python Deque appendleft 与列表

我目前正在deque使用以下内容创建我的对象,

但我希望稍后在队列中添加一个类似的列表,但使用appendleft,所以它可以跳到列表前面。我假设以下,但没有运气。

这甚至可能appendleft吗?

0 投票
4 回答
3715 浏览

data-structures - 将不可变双端队列实现为平衡二叉树?

我一直在思考如何将双端队列(即双端队列)实现为不可变的数据结构。

似乎有不同的方法可以做到这一点。AFAIK,不可变数据结构通常是分层的,因此它的主要部分可以在修改操作(例如插入或删除项目)后重用。

Eric Lippert 在他的博客上有两篇 关于此主题的文章,以及 C# 中的示例实现

他的两个实现都让我觉得比实际需要的更复杂。不能将双端队列简单地实现为二叉树,其中元素只能在树的“左”()和“右”()插入或删除?

此外,树将通过旋转保持合理的平衡:

  • 在前面插入或从后面取出时向右旋转,以及
  • 从前面移除或从后面插入时左旋转。

在我看来,Eric Lippert 是一个非常聪明的人,我非常尊重他,但他显然没有考虑过这种方法。因此,我想知道,这是有充分理由的吗?我建议的实现双端队列的方法是否幼稚?

0 投票
3 回答
1722 浏览

c - 在 C 中反转双链接双端队列

我无法在 C 中反转我的双链双端队列列表(只有一个后哨),我正在通过切换指针来接近它,这是我到目前为止的代码:

但它似乎不起作用,我一直在用一个看起来像这样的双端队列测试它: 1, 2, 3 输出是: 3 这个过程似乎弄乱了数字的实际值。IE。2变成2.90085e-309...我认为指针切换搞砸了,但我找不到问题。即使这并不意味着我的代码是正确的;它编译得很好。

0 投票
2 回答
556 浏览

deque - 如何从 std::deque 获取前一个元素?

例如,我有一个包含大约 10 个元素的数组。

问题:如何找到900元素,而不使用[]访问?如果海量的大小会发生变化,例如变为123,如何找到122的元素?

PS:我不想用[],因为这个方法不做d[-1]检查...

谢谢。

0 投票
7 回答
770 浏览

c++ - 从向量切换到双端队列的大小限制通常是多少?

我最近写了这篇文章:
如何最好地在 c++ 中存储非常大的 2D 浮点列表?错误处理?

一些人建议我将我的 2D 类似列表的浮点结构实现为向量,其他人则说是双端队列。

从我收集到的向量需要连续的内存,但因此效率更高。显然,如果可能的话,这将是可取的。

因此,我的问题是关于基本结构可以有多长的一个好的规则是......

1. float
2. int

...在您应该从向量切换到双端队列以避免内存问题之前?

例如,我正在寻找类似“大约 400 万个浮点数或 800 万个整数,你应该切换......”的答案......如果可能的话。

0 投票
1 回答
256 浏览

java - 将二进制文件读取到双端队列的问题

我正在按照讲师的要求使用 ArrayList 编写双端队列实现。到目前为止,类的主体看起来像这样

双端队列初始化为

我已经用一个单独的测试类测试了我的 Deque,我很确定它工作正常。但是每次我尝试运行这个读取类时,它都会在deck.addToBack(character) 行导致java.lang.OutOfMemoryError。是什么导致了问题,如何避免?

编辑:我的双端队列实现。界面由我的导师提供。

}

0 投票
5 回答
9172 浏览

c++ - 如何定义双括号/双迭代器运算符,类似于向量的向量?

我正在移植使用大量浮点数的代码,这可能会触发从 c 到 c++ 的 malloc 失败。我问了一个关于我应该使用向量还是双端队列的问题,Niki Yoshiuchi慷慨地给了我这个安全包装类型的例子:

我需要向量/双端队列的二维向量,因此我将其修改为以下代码:

我现在希望能够定义我的括号运算符,这样我就可以有一个语句,比如 x[1][2]直接访问哪个是真实的内存容器(由我的枚举变量的值给出。

我已经看过一些关于覆盖括号运算符的教程,但肯定不知道要覆盖双括号。

你怎么能超载双括号?

此外,您将如何重载双迭代器(如果我想使用迭代器,而不是直接索引)?

编辑1:

基于 Martin York/Matteo Italia 的解决方案,我设计了以下课程:

最后是一个尺寸安全的 2D 容器!!多谢你们!

0 投票
2 回答
226 浏览

c++ - (相对)C++ 中大小安全的包装 STL 容器

请耐心等待,因为我是自学 C++ 的,并且我将有限的额外时间花在工作上以尝试更多地了解它(我白天是一名化学工程研究员)。

我有一个非常简单的目标: 1. 制作一个大小安全的容器来存储一长串浮点数。2. 制作该容器的专用版本,用作矩阵。

到目前为止,根据对我在这里提出的各种问题的一些反馈,我得出的结论是:

通过这个实现,我尝试:
1.向包装器的用户提供两个访问选项(“.get(x,y)”和“[x][y]”)
2.通过使用基于包装的类来最大化重用然后继承它来制作矩阵。
3.解决连续内存限制达到时从vector过渡到deque的问题。

这似乎是一个不错的解决方案?建议?

0 投票
8 回答
38264 浏览

data-structures - 为什么我们在现实世界中需要 Deque 数据结构?

谁能给我一个需要Deque数据结构的情况的例子吗?

注意 -请不要解释 adeque是什么?

0 投票
4 回答
3758 浏览

python - 在 python 2.6 中检查双端队列的 maxlen


我不得不从 python 2.7 更改为 2.6。
我一直在使用带有 maxlen 属性的双端队列,并一直在检查 maxlen 是什么。显然,您可以在 python 2.6 中使用 maxlen,但在 2.6 中,双端队列没有 maxlen 属性。
在 python 2.6 中检查双端队列的 maxlen 的最简洁方法是什么?

在 2.7 中:

在 2.6 中可以使用 deque 并且 maxlen 可以正常工作,但是 maxlen 不是可以引用的属性。

干杯