Стеки: структуры данных в JavaScript

Просто красивое фото Дэйва Гудро на Unsplash

Стеки и очереди — одна из многих примитивных структур данных. И это хорошая отправная точка, если вы хотите изучить структуры данных. В этой статье мы поговорим о стеках, их фактической реализации и, конечно же, о реализации на языке JavaScript.

Стеки — это динамические наборы, в которых заранее задан элемент, удаляемый из набора операцией DELETE . В стеке элемент, удаленный из набора, является последним вставленным: стек реализует политику «последним пришел — первым вышел» или LIFO . Вы можете думать о стопке как о контейнере с любимыми чипсами, такими как Pringles или Lays.

Когда вы наполняете контейнер чипсами на производстве, вы начинаете есть с последнего чипа, помещенного в контейнер, а не с первого. Это один из многих реальных примеров политики или стека LIFO . Вы также можете думать о печенье или монетах, размещенных друг на друге.

Предположим, у нас есть n элементов.

Изначально стек имеет верхний параметр. Top показывает место последнего элемента в нашем стеке.

куча

В этом примере вершина нашего стека равна 6, потому что 6-й элемент — последний элемент стека. Если бы у нас не было 9, то вершина нашего стека была бы 5 (5-й элемент — последний элемент стека). Когда мы пытаемся добавить элемент в заполненный стек, происходит переполнение стека. Но когда мы пытаемся вытолкнуть элемент из пустого стека, произойдет потеря значимости стека.

Когда в стеке n элементов, то он заполнен, как в нашем примере. Приступим к созданию стека.

Инициализировать стек

Во-первых, вы должны инициализировать свой стек. Есть 3 основных параметра, по которым работает стековая логика.

Инициализация стека с классом
  1. Сам стек (this.stackList)
  2. Максимальная длина стека (this.maxLength, необязательно)
  3. Вершина вашего стека (this.topIndex)

Пустой стек

Операция с пустым стеком проверяет, пуст стек или нет.

Операция emptyStack в стеке

Толкать

Операция push добавляет один элемент в конец стека.

push-операция в стеке

Поп

Операция pop извлекает (удаляет) последний элемент стека.

всплывающая операция в стеке

Дополнения

Я также добавил некоторые другие вспомогательные методы (операции), чтобы пользователь мог получить больше информации о своем стеке.

Проверьте длину стека

Метод получения длины стека

Проверьте сам стек

метод получения стека

Проверить верхний параметр стека

метод получения вершины стека

Резюме

Итак, что мы имеем в итоге? У нас есть стек, который похож на массив с методами push, pop и length, но с большей функциональностью и эффективностью с точки зрения использования памяти.

Я думаю, что следующей структурой данных, которую мы рассмотрим, является структура данных очереди , в которой скрыта более интересная логика.

Кроме того, вы можете найти полный код, перейдя сюда .

Спасибо за прочтение, скоро увидимся

Другие темы структуры данных, которые я рассмотрел:

Односвязный список

Кэш LRU

Suggested posts

Поиск информации о доменных именах

Отрывок из книги «Маленькие программные инструменты Sharp» Брайана П. Хогана.

Поиск информации о доменных именах

Когда вы делаете запрос на facebook.com, ваш компьютер ищет доменное имя, чтобы преобразовать это доменное имя в IP-адрес, чтобы ваш компьютер мог установить это соединение.

Советы по переходу на кибербезопасность без технического образования.

Советы по переходу на кибербезопасность без технического образования.

В 2022 году я перешел с нетехнической роли на кибербезопасность. У меня была первая степень по немецкому языку, я знаю, что вы шокированы и любопытны, как я смог успешно перейти, ну, это просто случилось.

Related posts

Сольное выступление рыжеволосой девушки

По заданию Хайдена Кэти снимает, как она мастурбирует.

Сольное выступление рыжеволосой девушки

Было уже за полночь, когда Хейден отвез Кэти обратно в общежитие колледжа после их совместного вечера. У нее был ранний урок утром, и у нее не было другой смены одежды после того, как она осталась с ним прошлой ночью.

Всегда ли искусство аполитично?

Всегда ли искусство аполитично?

Вчера мы закрыли двери конкурса песни «Евровидение» в этом году блестящим, хаотичным грандиозным финалом, в котором шведская певица Лорин забрала домой трофей, став первой женщиной, выигравшей дважды, и вернув корону Швеции спустя 50 лет после того, как ABBA выиграла конкурс. с «Ватерлоо». Они стали одним из крупнейших исполнителей в каноне поп-музыки.

Журнал

Журнал

Открытый дневник: картинка в день. Меня всегда завораживали истории.

Почему некоторые фрилансеры притворяются своей жизнью

Почему некоторые фрилансеры притворяются своей жизнью

Недавно я был в Linkedin, крупнейшей в мире профессиональной социальной сети, и нашел посты дизайнеров-фрилансеров, за которыми я следил и которые привлекли мое внимание. Все они публиковали фотографии из самолетов, на пляже со своими ноутбуками, из бассейнов и офисов с потрясающими видами.