1. JavaScript 實作棧結構
class Stack {
#item = []; // 防止執行個體化的棧直接通過下标修改棧結構
// 入棧
push(element) {
this.#item.push(element);
}
// 出棧
pop() {
this.#item.pop();
}
// 顯示棧頂元素
peek() {
return this.#item[this.#item.length - 1];
}
// 擷取棧的長度
size() {
return this.#item.length;
}
// 判斷棧是否為空
isEmpty() {
return this.size() === 0;
}
// 清空棧
clear() {
this.#item = [];
}
// 轉字元串
toString() {
let re = "";
this.#item.forEach((value) => {
re = value + re;
});
return re;
}
}
let stack = new Stack();
2. 利用棧結構實作進制轉化
function getNum(num, base) {
let stack = new Stack();
while (num > 0) {
stack.push(num % base);
num = Math.floor(num / base);
}
return Number(stack.toString());
}