堆疊(Stack)
概念
堆疊(Stack)是一種資料結構,遵循 "Last-In-First-Out"(LIFO)原則,即後進先出。
- 【用途】它常用於紀錄之前的狀態,並只允許存取和操作堆疊的最尾端資料。通常無法使用索引直接存取堆疊內的元素。
- 【情境】瀏覽器回到「上一頁」
時間複雜度
- 遍歷:O(n)
- Pop: O(1)
- Push: O(1)
- Peek: O(1)
實作 Stack
屬性方法:
push
:存放資料至頂端,回傳新的堆疊pop
:刪除頂端資料,並回傳新的堆疊isEmpty
:判斷堆疊是否為空peek
: 查看堆疊最頂端的資料clear
: 移除堆疊的所有元素size
: 回傳堆疊內的元素個數,也就是資料長度
使用陣列
實作 Stack
class Stack {
constructor() {
this.items = []; //使用陣列儲存 Stack 的元素
}
push(element) {
this.item.push(element);
}
pop() {
return this.items.pop();
}
peek() {
return this.items[this.items.length - 1];
}
isEmpty() {
return this.items.length === 0;
}
clear() {
this.items = [];
}
size() {
return this.items.length;
}
}
//建立實體
const stack1 = new Stack();