在面试期间编码时,如何在短时间内用javascript实现队列?

在面试期间编码时,如何在短时间内用javascript实现队列?,javascript,queue,Javascript,Queue,我想知道当我在leetcode上编码时,是否有任何内置模块或包可以用于在javascript中实现队列。正如您所知,在面试过程中,不可能花费太多时间来实现手动排队。当我使用python时,我总是喜欢使用一个名为collections的模块,其中包括一个类deque。但在浏览了stack overflow之后,我发现大多数答案都是告诉人们如何从头开始用javascript实现队列。我正在寻找这样一种方便的方法来实现它。有人能帮忙吗 嗯,实现队列似乎没有比使用数组更好的方法了。它似乎基于javasc

我想知道当我在leetcode上编码时,是否有任何内置模块或包可以用于在javascript中实现
队列
。正如您所知,在面试过程中,不可能花费太多时间来实现手动排队。当我使用python时,我总是喜欢使用一个名为
collections
的模块,其中包括一个类
deque
。但在浏览了stack overflow之后,我发现大多数答案都是告诉人们如何从头开始用javascript实现队列。我正在寻找这样一种方便的方法来实现它。有人能帮忙吗


嗯,实现队列似乎没有比使用数组更好的方法了。它似乎基于javascript引擎本身。这是一个关于它的链接:

a
queue
是一个FIFO结构,其中列表中插入的第一个元素是第一个要删除的元素

在JavaScript中,您可以轻松地使用数组来实现此逻辑

shift
方法返回并删除数组的第一个元素(正如
dequeue
所做的那样),因此如果使用
push
添加元素,并使用
shift
删除元素,则实际上使用的是队列

以下是一个例子:

const a=[];
a、 推(3);
a、 推(5);
a、 推(7);

console.log(a.shift())用于呼吸优先搜索。旋转2个阵列可能会有所帮助。FIFO的平均O(1)时间。

谢谢您的回答。但据我所知,如果我实现一个基于数组的队列,当我从队列的头部推上或弹出元素时,它不能为我提供O(1)时间复杂度。我想在面试时,它肯定不能满足时间复杂度的要求。据我所知,在JS中,在数组末尾插入元素并从数组末尾删除元素的时间复杂度为O(1)(因此
push
pop
)。
移位
取消移位
的最坏情况应为O(n)。但我希望有人能发布一些更相关的信息。关于这次采访,我曾经得到一个关于js中堆栈(LIFO)的类似问题,我使用了arryas和
unshift
pop
方法,他们对此感到满意。在JS中,只有对象,甚至数组也是对象。没有更好的数据结构,你甚至可以用Zero来实现它好吧,我明白了。谢谢分享。很抱歉,我是说后进先出,当然有
push
pop