佇列(Queue)和堆疊(Stack)相似,但插入點和移除點不同。

我們在佇列的一端新增項目,而在另一端移除項目。

這種結構被稱為「先進先出」(First In, First Out,FIFO)。

就像你可以想像的任何佇列,例如在餐廳、舞廳或者等待進入音樂會大廳時。

以下是使用JavaScript實現佇列的可能實作,使用私有類別欄位(Private Class Fields),內部儲存使用陣列:

class Queue {
 #items = []
 enqueue = (item) => this.#items.splice(0, 0, item)
 dequeue = () => this.#items.pop()
 isempty = () => this.#items.length === 0
 empty = () => (this.#items.length = 0)
 size = () => this.#items.length
}

以下是使用方式:首先從類別初始化一個物件,然後呼叫其方法:

  • 使用 enqueue() 添加項目
  • 使用 dequeue() 從佇列中取出項目

範例:

const queue = new Queue()
queue.enqueue(1)
queue.enqueue(2)
queue.enqueue(3)
queue.size() //3

queue.dequeue() //1
queue.dequeue() //2
queue.dequeue() //3