แม้ว่า Array ใน JavaScript จะมีฟังก์ชันทั้งหมดของ Stack แต่ขอให้เราใช้ Stack class ของเราเอง ชั้นเรียนของเราจะมีฟังก์ชันดังต่อไปนี้ -
- push(element):ฟังก์ชันผลักองค์ประกอบที่ด้านบนของสแต็ก
- pop():ฟังก์ชันที่ลบองค์ประกอบออกจากด้านบนและส่งคืน
- peek():ส่งกลับองค์ประกอบที่ด้านบนของสแต็ก
- isFull():ตรวจสอบว่าเราถึงขีดจำกัดองค์ประกอบในสแต็กหรือไม่
- isEmpty():ตรวจสอบว่าสแต็กว่างเปล่าหรือไม่
- clear():ลบองค์ประกอบทั้งหมด
- display():แสดงเนื้อหาทั้งหมดของอาร์เรย์
เริ่มต้นด้วยการกำหนดคลาสอย่างง่ายด้วยคอนสตรัคเตอร์ที่ใช้ขนาดสูงสุดของสแต็กและฟังก์ชันตัวช่วย display() ที่จะช่วยเราเมื่อเรานำฟังก์ชันอื่น ๆ สำหรับคลาสนี้ไปใช้ เรายังได้กำหนดฟังก์ชันเพิ่มเติมอีก 2 อย่างคือ isFull และ isEmpty เพื่อตรวจสอบว่าสแต็กเต็มหรือว่างเปล่า
เต็มแล้ว ฟังก์ชันเพียงแค่ตรวจสอบว่าความยาวของคอนเทนเนอร์เท่ากับหรือมากกว่า maxSize และส่งคืนตามนั้นหรือไม่
ว่างเปล่า ฟังก์ชันตรวจสอบว่าขนาดของคอนเทนเนอร์เป็น 0 หรือไม่
สิ่งเหล่านี้จะมีประโยชน์เมื่อเรากำหนดการดำเนินการอื่นๆ ฟังก์ชันที่เรากำหนดตั้งแต่นี้เป็นต้นไปจะเข้าไปอยู่ในคลาส Stack ทั้งหมด
ตัวอย่าง
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); } }