Как я могу создать очередь в JavaScript, где я могу добавлять / удалять элементы в почти O (1) / постоянное время?Прямо сейчас у меня есть простой массив в виде очереди, но чтобы найти элемент для удаления, мне нужно пройти через массив, а затем вызвать Array.prototype.splice
.
Мало того, но если у вас есть очередь FIFO, основанная на простом массиве, вам нужно будет вызвать Array.prototype.shift
или Array.prototype.unshift
, и оба они O (N), потому что они должныобновить индексы каждого элемента в массиве.
Так что я ищу, чтобы получить постоянное время вставки / удаления элементов в любом месте списка / очереди.Простой массив, кажется, не дает этого, если вы попытаетесь превратить его в очередь FIFO.