Как работают стеки и как вы можете использовать их в своих программах.

Стек — это структура данных, которая позволяет хранить данные и получать доступ к ним в порядке поступления — первым пришел. Это означает, что элемент на вершине стека удаляется первым. Стеки часто используются в программировании для обработки ввода и вывода или для отслеживания обрабатываемых элементов. В этом посте мы обсудим, как работают стеки и как вы можете использовать их в своих программах!

Принцип «последним пришел – первым вышел»

Как мы упоминали ранее, стеки используют принцип «последним пришел – первым вышел». Это означает, что самый последний элемент, который будет добавлен в стек, будет первым, который будет удален. Чтобы визуализировать это, представьте себе стопку книг. Если вы добавите новую книгу в верхнюю часть стопки, она будет первой, которая будет удалена, когда вы начнете вынимать книги из стопки.

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

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

Теперь, когда мы знаем, как вообще работают стеки, давайте посмотрим, как они реализованы в JavaScript. В JavaScript нет встроенной структуры данных стека. Однако мы можем реализовать функциональность стека, используя массив.

Добавление и удаление элементов

Добавление элемента в стек называется отправкой. Чтобы добавить элемент в стек, вам просто нужно положить его на вершину стека.

let stack = [];
stack.push(val);

Удаление элемента из стека называется поп. Чтобы удалить элемент из стека, вы берете верхний элемент из стека и откладываете его в сторону. Элемент, который был под ним, становится новым верхним элементом.

let stack = [12, 13];
let val = stack.pop();
return val; // 13

Проверка, пуст ли стек

Может быть полезно знать, пуст стек или нет. Для этого вы можете использовать свойство .length:

let stack = [];
if (stack.length === 0) {
  console.log(“Stack is empty”);
} 
else {
  console.log(“Stack is not empty”);
}

Получение верхнего элемента стека

Если вы хотите получить верхний элемент стека, не удаляя его, мы можем реализовать метод peek().

function peek(stack) {
  if (stack.length === 0) return null;
  return stack[stack.length — 1];
}
let stack = [12, 13];
console.log(peek(stack)); // 13

Заключение

Стек — это мощная структура данных, которую можно использовать по-разному. Поняв, как они работают и как реализовать их в JavaScript, вы сможете использовать их в своих собственных программах! Удачи на собеседованиях по кодированию!

Дополнительные материалы на PlainEnglish.io. Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Подпишитесь на нас в Twitter и LinkedIn. Посетите наш Community Discord и присоединитесь к нашему Коллективу талантов.