Это линейная структура данных, которая работает как стопка элементов в реальном мире. Он следует порядку LIFO (последним пришел, первым ушел) и FILO (первый пришел последним).

Основные операции структуры данных стека:

  • push: добавляет элемент вверху
  • pop: удаляет элемент сверху
  • Peek: извлекает самый верхний элемент стека, не удаляя его.
  • isEmpty: проверяет, пуст ли стек.

Синтаксис:

class Stack {
  constructor() {
    this.items = [];
  }

  push(value) {
    this.items.unshift(value);
  }

  pop() {
    // if(this.isEmpty()) return 'Stack is empty';
    return this.items.shift();
  }

  peek() {
    // if(this.isEmpty()) return 'Stack is empty';
    return this.items[0];
  }

  isEmpty() {
    return this.items.length === 0;
  }
}

Массив и его методы используются для реализации структуры данных стека и его операций. Теперь давайте посмотрим на реализацию каждой операции:

  • push(value):использует Array.prototype.unshift() для добавления элемента в начало массива.
  • pop():использует Array.prototype.shift() для удаления элемента из начала массива.
  • peek(): извлекает значение первого элемента в массиве, не удаляя его.
  • isEmpty():использует Array.prototype.length, чтобы определить, пуст массив или нет.

Пример:

let stackObj = new Stack();

// Adding element to the stack
stack.push(10);
stack.push(20);
stack.push(30);

stack.isEmpty();                      // false

stack.peek();                         // 10

stack.pop();                          // 30
stack.pop();                          // 20
stack.pop();                          // 10

stack.isEmpty();                      // true
 

Спасибо за чтение! Я надеюсь, что вы нашли этот блог информативным и интересным. Если вы заметили какие-либо неточности или у вас есть какие-либо отзывы, пожалуйста, не стесняйтесь, дайте мне знать.