Computer >> Máy Tính >  >> Lập trình >> Javascript

Tạo các phần tử từ Ngăn xếp trong Javascript


Hãy xem xét một lớp ngăn xếp đơn giản trong Javascript.

Ví dụ

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);
   }
}

Đây là isFull hàm chỉ kiểm tra xem độ dài của vùng chứa có bằng hoặc hơn maxSize hay không và trả về tương ứng. isEmpty hàm kiểm tra xem kích thước của vùng chứa có bằng 0. Hàm Push được sử dụng để thêm các phần tử mới vào ngăn xếp hay không.

Trong phần này, chúng ta sẽ thêm thao tác POP trong lớp này. Bật các phần tử khỏi Ngăn xếp có nghĩa là xóa chúng khỏi đầu mảng. Chúng tôi đang lấy phần cuối của mảng vùng chứa làm phần đầu của mảng vì chúng tôi sẽ thực hiện tất cả các hoạt động liên quan đến nó. Vì vậy, chúng ta có thể triển khai hàm pop như sau -

Ví dụ

pop() {
   // Check if empty
   if (this.isEmpty()) {
      console.log("Stack Underflow!");
      return;
   }
   this.container.pop();
}

Bạn có thể kiểm tra xem chức năng này có hoạt động tốt hay không bằng cách sử dụng -

Ví dụ

let s = new Stack(2);
s.display();
s.pop();
s.push(20);
s.push(30);
s.pop();
s.display();

Đầu ra

Điều này sẽ cung cấp đầu ra -

[]
Stack Underflow!
[ 20 ]