Реализация стека в JavaScript

Realizacia Steka V Javascript



Стеки — это линейные структуры данных, которые следуют принципу LIFO. LIFO расшифровывается как last in first out, что означает, что самый последний добавленный элемент удаляется первым. Эта структура данных называется стеком по аналогии со стеками в реальном мире, например, стопка файлов cookie в банке с печеньем или стопка книг на книжной полке. В стеке вставка и извлечение могут выполняться только на одном конце, то есть на вершине стека. Например, если мы хотим съесть печенье, мы сначала получим верхнее, затем второе и так далее.

Этот пост будет посвящен реализации стека в JavaScript. Поскольку мы работаем с JavaScript, нас не будет волновать размер стека, поскольку размер объектов JavaScript может динамически расти.







Реализация стека в JavaScript

Мы будем использовать класс JavaScript для реализации структуры данных стека. куча class будет содержать массив в своем конструкторе, который будет использоваться для хранения элементов в стеке. Класс также будет определять различные методы, которые будут использоваться для управления данными, хранящимися внутри стека. Самыми основными методами массива являются вставлять() а также извлекать() методы, которые используются для добавления и удаления элементов из вершины стека.



куча class также определяет другие методы, такие как заглянуть() , пустой() , Чисто() , Распечатать() а также размер() также:



стек классов {
конструктор ( ) {

это.элементы = [ ] ;

}

// Помещает элемент на вершину стека

вставлять ( элемент ) {

this.elements.push ( элемент ) ;

}

// Удаляет элемент с вершины стека

извлекать ( ) {

это.элементы.поп ( ) ;

}

// Возвращает самый верхний элемент стека

подглядывать ( ) {

возвращаться это.элементы [ эта.элементы.длина - 1 ] ;

}
// Чеки если стек пуст

пустой ( ) {

возвращаться this.elements.length == 0 ;

}

// Печатает весь стек

Распечатать ( ) {
за ( позволять я = 0 ; я < длина.этих.элементов; я++ ) {
console.log ( это.элементы [ я ] ) ;
}

}
// Возвращает размер стека

размер ( ) {

возвращаться длина.этих.элементов;

}

// очищает стек

Чисто ( ) {
это.элементы = [ ] ;
}

}





Выталкивание и извлечение элементов из стека

Самая основная операция со стеком — это вставка и извлечение элементов из вершины стека. Класс стека предоставляет два метода для этих операций:


Первая строка вышеупомянутого кода объявляет новый стек с именем с . Тогда вставлять() метод используется для вставки четырех элементов в стек, два из которых затем удаляются извлекать() метод.



Как получить верхний элемент из стека

куча класс определяет заглянуть() метод для получения верхнего элемента из стека:


Как проверить, пуст ли стек?

Класс также определяет метод, который можно использовать для проверки того, пуст ли стек:


Как распечатать весь стек?

Распечатать() метод может быть вызван для печати всего стека


Как проверить размер стека?

размер() метод использует .длина свойство, чтобы получить размер стека:


Как очистить весь стек?

Просто вызовите Чисто() метод для удаления каждого элемента стека:

Вывод

Стеки — это полезные структуры данных со многими реальными приложениями, такими как история браузера, кнопка отмены в текстовых редакторах и журналы вызовов. Все эти приложения следуют принципу LIFO, например, кнопка «Назад» в браузере возвращает на последнюю посещенную страницу, а первая запись в журнале вызовов всегда является последним вызовом.

Реализация стека в JavaScript очень проста, так как он имеет встроенный толкать а также поп методы для массивов. В этой статье демонстрируется процесс реализации стека в JavaScript.