แม้ว่า 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);
}
}