佇列(Queue)
概念
佇列(Queue)是一種資料結構,遵循 "First-In-First-Out"(FIFO)原則,即先進先出。
- 【用途】多個程式的排程(schedule),其中先進來的資料會被先處理
- 【情境】排隊買票,先到的人先買完離開
時間複雜度
- 遍歷:O(n)
- Pop: O(1)
- Push: O(1)
- Peek: O(1)
實作 Queue
屬性方法:
enqueue
:尾端新增一個元素dequeue
:刪除頭部第一個元素front
: 查看佇列第一個元素isEmpty
:判斷佇列是否為空clear
: 移除佇列的所有元素size
: 回傳佇列內的元素個數,也就是資料長度
使用陣列
實作 Queue
class Queue {
constructor() {
this.items = []; //使用陣列儲存 Queue 的元素
}
enqueue(element) {
this.item.push(element);
}
dequeue() {
return this.items.shift();
}
front() {
return this.items[0];
}
isEmpty() {
return this.items.length === 0;
}
clear() {
this.items = [];
}
size() {
return this.items.length;
}
}
//建立實體
const queue = new Queue();