В этой статье мы увидим, как структура данных стека может быть реализована в Javascript.

Что такое стек?

Стек - это структура данных для хранения данных в порядке вставки, при котором элемент, вставленный последним, в стек будет удален первым.
Вкратце L ast I n F первый O ut (LIFO).

Как мы собираемся это реализовать?

Ниже приведены методы и переменные, которые мы собираемся использовать в Stack DS.

инициализировать - инициализировать хранилище и размер стека.

push - отправить данные в стек

pop - удалить из стека последний нажатый элемент.

getStackSize - получить текущий размер стека.

инициализировать

class Stack {  
 /* Initialization */  
 constructor() {    
   this.storage = {};    
   this.stackLength = 0;  
 }
}

push

class Stack {
  /* Initialization */
  constructor() {
    this.storage = {};
    this.stackLength = 0;
  }
  
  /* Add item to the stack */
  push(item) {
    this.storage[this.stackLength] = item;
    this.stackLength++;
  }
  
}

поп

class Stack {
  /* Initialization */
  constructor() {
    this.storage = {};
    this.stackLength = 0;
  }
  
  /* Remove Item from the stack with below conditions
   1. Get the last index
   2. check the stack is non-empty
   3. remove the item from the storage
  */
  pop() {
    let endIndex = this.stackLength - 1;
    if (endIndex >= 0) {
      delete this.storage[endIndex]
      this.stackLength--;
    } else {
      throw "Stack is Empty, cannot pop!"
    }
  }
  
}

getStackSize

class Stack {
  /* Initialization */
  constructor() {
    this.storage = {};
    this.stackLength = 0;
  }
  
  /* To get the stack size */
  getStackSize() {
    return this.stackLength;
  }
}

Полный код

Мы также можем добавить дополнительные функции, такие как размер стека по умолчанию, получение последнего элемента и т. Д.

Эта статья написана с особой благодарностью сообществу разработчиков, откуда я узнал об этом.