Это линейная структура данных, которая работает как стопка элементов в реальном мире. Он следует порядку 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
Спасибо за чтение! Я надеюсь, что вы нашли этот блог информативным и интересным. Если вы заметили какие-либо неточности или у вас есть какие-либо отзывы, пожалуйста, не стесняйтесь, дайте мне знать.