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

— -

› что это такое?
› Предварительные условия
› Реализация
› Варианты использования
› Дополнительная информация
— -

Итак, во-первых, стек представляет собой структуру данных, которая следует принципу LIFO, что означает, что последний вошел первым, как вы понимаете, стек использует массив и в основном два метода: pop и push

- pop удалить первый элемент, который последним будет вставлен в список

- push добавить последний элемент в массив

![Описание изображения](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2xovh7aueiuagla3j559.jpg)

**Предпосылки**

- Знать JavaScript

- Ничего больше

Знайте, что пришло время кодировать, знайте, что у нас есть прочная основа стека, реализованного в js. Пойдем и возьмем.

```
let stack = [];

function push(num) {
stack.push(num);
console.log(stack);
}

function pop() {
stack.pop();

console.log(стек);
}

push(1);
push(2);
push(3);
push(4);
push(5);

поп();
```

Время взломать код и понять его ⛹🏿⛹🏿🏋🏿‍♂️🏋🏿

```
let stack = [];
```
объявить переменную и подписать ее в пустой массив

```
function push(num) {
stack.push(num);
console.log(stack);
}
```
Ну-ну. Я знаю, что сделал это с помощью функции, но здесь нет никаких проблем, я могу сказать, делай, как ты хочешь, позвольте мне ограничить ваше воображение. Я делаю простую реализацию, передавая число в качестве любого аргумента, а затем помещаю его в созданный нами стек.

```
function pop() {
stack.pop();

console.log(stack);
}
```
Я делаю то же самое, помните, что pop удаляет первый элемент, который был вставлен последним в списке.

```
push(1);
push(2);
push(3);
push(4);
push(5);

pop();
```
Здесь я вызываю функции, и после того, как я вставлю все элементы, я делаю pop, чтобы удалить 5 из массива. Давайте посмотрим на мой терминал

![Описание изображения](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pqkddjpzu6pyqs74n04u.png)

![Описание изображения](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0cwbr796afftu1it8pm6.png)

**Использует случаи**

![Описание изображения](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/b69fzdcuz6azzxpyn1qy.jpg)

**Дополнительная информация**

**Реверс строки**

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

![Описание изображения](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9v1hez6v2519rzvkko77.png)

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

```
const reverse = (str) =› {
const stackReverse = [];
for (пусть i = 0; i ‹ str.length; i++) {
stackReverse.push(str[i]);
console.log('индекс стека', str[i], stackReverse);
}
```
Функция здесь довольно просто, мы передаем аргумент, а затем создаем любой массив, в котором мы собираемся хранить наши буквы.

Итак, второй шаг — перебрать строку после того, как мы поместили каждую букву строки в массив с именем stackReverse и утешили ее.

```
let reverseStr = '';
while (stackReverse.length › 0) {
reverseStr += stackReverse.pop();
}
`` `
тем не менее, в функции мы делаем while, которая проверяет, больше ли длина stackRverse нуля, если нет, мы продолжаем извлекать массив, и каждый извлеченный элемент сохраняется в reverseStr.

```
if (reverseStr === str)
return console.log('true слово палиндром', reverseStr);

return console.log('false слово не палиндром', reverseStr);

};
```

Теперь все становится немного странным в операторе if, я собираюсь дать вам видео на YouTube, которое хорошо объясняет это.

YouTube хорошо объясняет:

{% youtube EumXak7TyQ0&t=541s %}

```
реверс('ссылка');

реверс('привет');
```

просто вызываю функцию, чтобы увидеть, является ли слово палиндромом. Спасибо за чтение❤️😍👌 Дойти до этого места было непросто

![Описание изображения](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/b3ecq0lvo1xzp5ftdaq3.png)

Вот что я напечатал в терминале