Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

การสร้าง Stack ใน Javascript


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

   }

}