Вступление

Итак, несколько дней назад я провел опрос своих историй в Instagram, и по результатам этого опроса я решил написать в блоге сообщение на тему СТЕКИ при использовании JavaScript.

Какая структура данных стека?

Стек - это структура данных, которая следует принципу ПОСЛЕДНИЙ НАПЕРВЫМ (LIFO). Есть несколько реальных примеров, например тарелки, книги, сложенные друг на друга и т. д.

Удаление и добавление новых предметов в стопку происходит на одном конце. Это связано с тем, что стеки следуют принципу LIFO, это означает, что новые добавленные элементы удаляются первыми.

Давайте создадим стопку

Хватит объяснений, давайте напишем коды🤓🤓🤓! Мы начинаем с основ и объявляем класс, используя массив в свойстве конструктора нашего класса.

//stack class
class Stack {
      constructor() {
         this.items = [];
      }
      //methods to be implemented go here
      Push(item)
      Pop()
      Peek()
      isEmpty()
      Clear()
      Size() 
      Print()
}

Давайте реализуем каждый метод для нашего класса стека.

Push: элементы или элемент добавляются в верхнюю часть стопки.

Push(item) {
     //pushing an item into the stack
     this.items.push(item)
}

Pop: удаляет верхний элемент из стека и возвращает удаленный элемент.

Pop() {
    //removes an item from the stack
    return this.items.pop()
}

Peek: возвращает верхний элемент из стека, но не изменяет его (не удаляет).

Peek() {
     //returning the top item without modifying it
     return this.items[this.items.length - 1]
}

isEmpty: возвращает false, если стек содержит элементы, но возвращает true, если он не содержит элементов.

isEmpty() {
        //return true if the stack is empty
        return this.items.length == 0;
}

Очистить: все элементы будут удалены из стопки.

Clear() {
      //output all the content of the stacks
      return this.items = [];
}

Размер: возвращает все количество элементов, содержащихся в стопке. (это похоже на свойство length структуры данных массива)

Size() {
     //returns the number of items in the stack
     return this.items.length;
}

Печать: выводит содержимое стопки.

Print() {
      //output all the content of the stacks
      console.log(this.items.toString())
}

YOOHOO… Чемп! Вы зашли так далеко! Ты просто потрясающий

Давайте воспользуемся классом стека

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

//instantiating the stack
let stack = new Stack()

Затем мы можем добавить несколько элементов (мы нажимаем 1 и 2, мы можем отправить любой элемент в стек)

//pushing a new item to stack
stack.Push(1)
stack.Push(2)

Затем мы можем продолжить, чтобы проверить, были ли элементы добавлены в стек. Это должно вернуть false.

//returns false
console.log(stack.isEmpty());

Давайте продолжим и вызовем метод peek, мы получим 2, потому что это последний элемент, добавленный в стек.

//returns 2
Console.log(stack.Peek());

Давайте продолжим и добавим один элемент в стопку.

//adds 3 to the stack
stack.Push(3);

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

//out puts 3
console.log(stack.Size());

Давайте распечатаем все элементы нашей стопки

//returns [1,2,3]
Stack.Print()

Давайте удалим элемент из стопки

//removes each item from the stack
Stack.Pop()
Stack.Pop()
Stack.Pop()

Давайте еще раз проверим, пусто ли оно

//returns true
Stack.isEmpty();

Вот оно что !!!

Всего за несколько простых шагов мы реализовали стеки с помощью JavaScript.

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

Если вам понравилась эта статья, почему бы не подписаться на меня в Twitter, также сделать снимок экрана и отправить DM в Instagram, я благодарю вас вместе с другими из 36 тысяч участников нашего сообщества.

Ваше здоровье! Удачного взлома.