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

Cấu trúc dữ liệu ngăn xếp trong Javascript


Ngăn xếp là một Kiểu dữ liệu trừu tượng (ADT), thường được sử dụng trong hầu hết các ngôn ngữ lập trình. Nó được đặt tên là ngăn xếp vì nó hoạt động giống như một ngăn xếp trong thế giới thực, chẳng hạn - một bộ bài hoặc một đống đĩa, v.v.

Cấu trúc dữ liệu ngăn xếp trong Javascript

Một ngăn xếp chỉ cho phép các hoạt động ở một đầu. Tính năng này làm cho nó trở thành cấu trúc dữ liệu LIFO. LIFO là viết tắt của Last-in-first-out. Ở đây, phần tử được đặt (chèn hoặc thêm) cuối cùng, được truy cập đầu tiên. Trong thuật ngữ ngăn xếp, hoạt động chèn được gọi là hoạt động PUSH và hoạt động loại bỏ được gọi là hoạt động POP.

Sơ đồ sau đây cho thấy các hoạt động trên ngăn xếp -

Cấu trúc dữ liệu ngăn xếp trong Javascript

Sau đây là lớp Javascript hoàn chỉnh để đại diện cho một Ngăn xếp -

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 = [];
   }
   display() {
      console.log(this.container);
   }
   isEmpty() {
      return this.container.length === 0;
   }
   isFull() {
      return this.container.length >= this.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()
   }
   peek() {
      if (isEmpty()) {
         console.log("Stack Underflow!");
         return;
      }
      return this.container[this.container.length - 1];
   }
   clear() {
      this.container = [];
   }
}