從 Javascript 棧中窺探元素
考慮 Javascript 中的一個簡單的棧類。
示例
class Stack { constructor(maxSize) { // Set default max size if not provided if (isNaN(maxSize)) { maxSize = 10; } this.maxSize = maxSize; // Init an array that'll contain the stack values. this.container = []; } // A method just to see the contents while we develop this class display() { console.log(this.container); } // Checking if the array is empty isEmpty() { return this.container.length === 0; } // Check if array is full isFull() { return this.container.length >= maxSize; } push(element) { // Check if stack is full if (this.isFull()) { console.log("Stack Overflow!"); return; } this.container.push(element); } pop() { // Check if empty if (this.isEmpty()) { console.log("Stack Underflow!"); return; } this.container.pop(); } }
這裡,isFull 函式僅檢查容器的長度是否等於或大於 maxSize,並相應地返回。isEmpty 函式檢查容器的大小是否為 0。Push 和 Pop 函式分別用於向棧中新增和刪除新元素。
在本節中,我們將在該類中新增 PEEK 操作。窺探棧是指獲取陣列的頂值。於是我們可以按如下方式實現 peek 函式 −
peek() { if (isEmpty()) { console.log("Stack Underflow!"); return; } return this.container[this.container.length - 1]; }
你可以使用 − 檢查此函式是否工作正常
示例
let s = new Stack(2); s.peek(); s.push(10); console.log(s.peek());
輸出
這將產生以下輸出 −
Stack Underflow! 10
廣告