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

Nhìn trộm 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);
   }

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

Đâ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 chức năng kiểm tra xem kích thước của vùng chứa có bằng 0. Các chức năng Push và Pop được sử dụng để thêm và xóa các phần tử mới khỏi ngăn xếp tương ứng hay không.

Trong phần này, chúng ta sẽ thêm thao tác PEEK trong lớp này. Nhìn trộm một ngăn xếp có nghĩa là lấy giá trị cao nhất của mảng. Vì vậy, chúng ta có thể triển khai hàm peek như sau -

peek() {
   if (isEmpty()) {
      console.log("Stack Underflow!");
      return;
   }
   return this.container[this.container.length - 1];
}

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.peek();
s.push(10);
console.log(s.peek());

Đầu ra

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

Stack Underflow!
10