«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > JS объединяет введение DS&A

JS объединяет введение DS&A

Опубликовано 26 августа 2024 г.
Просматривать:196

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

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

Стеки представляют собой линейную структуру данных, которая соответствует порядку операций, организующих данные в структуре LIFO или FILO.

LIFO: Последний пришёл, первый ушёл.

ФИЛО: Первый пришёл, последний ушёл.

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

Например:

Когда вы в данный момент посещаете сайт www.ESPN.com в веб-браузере и случайно нажимаете на рекламу билетов на бейсбол в Чикаго Уайт Сокс. Мы пополнили нашу стопку, возможно, не намеренно, но теперь она находится на вершине нашей стопки. Затем мы понимаем, что «Чикаго Уайт Сокс» проиграли 15 игр подряд. Что ж... давайте нажмем кнопку «Назад» (удалив этот элемент с вершины стека).

JS stacks DS&A intro

Да, вот этот. Это демонстрирует принцип LIFO в операциях со стеками: мы оставляем (удаляем) последнюю посещенную страницу из нашей истории (или стеков), чтобы вернуться на www.ESPN.com... возможно, в следующем году White Sox's.

Операции со стеками часто используются в приложениях, которым необходимо поддерживать порядок истории веб-браузера, отменять и повторять действия в текстовых редакторах, а также в стеках вызовов функций, и это лишь некоторые из них.

При изменении стеков обычно используются следующие функции:

.Нажмите =, чтобы добавить элемент в стек.

.pop = удалить верхний элемент из стека.

.peek = для отображения верхнего элемента стека.

.length/.size = для определения общего количества индексов в стеке. Javascript использует (.length)

.isEmpty = проверяет, пуст ли стек.

.isFull = проверяет, заполнен ли стек; если массив имеет фиксированный размер.

Структура данных Stacks может быть создана с помощью класса stacks или обычного массива.

Реализация стеков без класса:

При выполнении операций со стеками без класса stacks мы имитируем операции со стеками с помощью массива.

Ниже будет приведен пример использования операций со стеками для обращения массива чисел. Я буду использовать JSON.stringify для сравнения значений результата массива с результатом массива желаний.

Бывший:

// Reverse an array using stack operations

let number = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; // original array
let numberList = [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]; // reversed array
let ordernumberList = []; // array to store the reversed order

// Loop through the numberList array to reverse its order
for (var i = 0; i 



Я хочу выделить оператор if-else в самом конце. Я использовал метод JSON.stringify для сравнения двух массивов, потому что без него сравнение вернуло бы false, вызывая условие else, даже если массивы имеют идентичное содержимое. Это происходит потому, что при сравнении массивов в JavaScript сравнение проверяет их ссылки (т. е. их местоположения в памяти), а не фактическое содержимое внутри массивов.

Как мы видим на протяжении всего цикла for, наш метод .pop (удаляет) первым индексом в массиве NumberList (LIFO). Затем с помощью метода .push добавьте его в новый массив ordernumberList, перевернув исходный массив.

FILO входит в новый массив, сформулированный так, что первые индексы, помещенные в массив ordernumberList, будут последними (FILO), если они когда-либо будут изменены с помощью операций со стеками.

В этой статье мы рассмотрели, как работают стеки, используя принципы LIFO и FILO, реализовали операции со стеком в JavaScript. Понимание стеков необходимо для многих задач программирования, как это видно из реальных сценариев, таких как просмотр веб-страниц.

Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/cedsengine/js-stacks-dsa-intro-bl3?1. Если есть какие-либо нарушения, свяжитесь с [email protected], чтобы удалить ее.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3