Структуры данных JavaScript
Тип абстрактных данных стека - это линейная структура данных. Он следует принципу «последний пришел - первым ушел» (LIFO). Элементы можно вставлять или удалять только с одного конца стека, то есть сверху. Последний элемент, который будет вставлен в стек, будет удален из него первым.
Когда верхний элемент стека удаляется, если стек остается непустым, то элемент сразу под предыдущим верхним элементом становится новым верхним элементом стека.
Операции вставки и удаления элементов называются push () и pop () соответственно.
Реализация класса Stack в JavaScript
class Stack { constructor() { this.stack = []; } push(ele) { this.stack.push(ele); return this.stack; } pop() { return this.stack.pop(); } peek() { return this.stack[this.stack.length - 1]; } size() { return this.stack.length; } isEmpty() { return this.stack.length === 0; } }
- push ( item ) добавляет новый элемент в начало стопки. Ему нужно добавить элемент в стек.
- pop () удаляет верхний элемент из стека. Он не требует параметров и возвращает элемент. Стек изменен.
- peek () возвращает верхний элемент из стека, но не удаляет его. Думайте об этом, как о подсмотре ценности главного предмета.
- isEmpty () проверяет, пуст ли стек. Он не требует параметров и возвращает логическое значение; истина, если стек пуст.
- size () возвращает количество элементов в стопке. Он не требует параметров и возвращает целое число.
- Stack () создает новую пустую стопку. Он не требует параметров и возвращает пустой стек.
Переменная s ниже ссылается на новый класс Stack выше. Отсюда ‘s’ имеет доступ ко всем методам, определенным в классе Stack.
const s = new Stack(); s.size() // 0 s.isEmpty() // true s.push(1) // [ 1 ] s.push(2) // [ 1, 2 ] s.pop() // 2 s.peek() // 1 s.isEmpty() // false s // Stack { stack: [ 1 ] }
Использование стека:
- Стек вызовов - это стек, который отслеживает вызовы функций в программе. Когда функция возвращается, к какой функции мы «возвращаемся»? Последний, который «подтолкнул» вызов функции.
- Поиск в глубину использует стек (иногда стек вызовов), чтобы отслеживать, какие узлы посещать следующим.
- Анализ строки - стеки могут быть полезны для нескольких типов синтаксического анализа строк. Перевернуть строку или проверить пару круглых скобок - распространенные вопросы на собеседовании.
Реализация:
Вы можете реализовать стек со связанным списком, нажав или вытолкнув элемент в начало. Вы также можете реализовать стек с динамическим массивом, добавляя и удаляя последний элемент.
Все операции со стеком выполняются быстро и эффективно. Требуется O (1) временная сложность и O (n) пространственная сложность.
Структура данных стека | Торт для интервью
Стопка похожа на стопку тарелок. Это «последним пришел, первым ушел (LIFO), что означает, что элемент, который был добавлен больше всего… www.interviewcake.com »
4.3. Что такое стек? - Решение проблем с помощью алгоритмов и структур данных.
Стек (иногда называемый «выталкивающим стеком) - это упорядоченный набор элементов, в который добавляются новые элементы и… runestone.academy »