tgoop.com/prog_way_blog/133
Last Update:
Основные структуры данных: Стек
Стек — это структура данных, которая подчиняется принципу LIFO, что расшифровывается как «Last In First Out». Суть заключается в расшифровке принципа: первым будет доступен тот элемент, который положен последним.
На бытовом примере, стек — это принглс. Мы можем достать только ту чипсину, что вверху, возле крышки. При этом та, что в коробке оказалось первой и сейчас лежит внизу, в наших руках окажется последней. Мы, конечно, можем перевернуть коробку и высыпать всё, но допустим, что не можем и нам нужно доставать чипсы по одной.
В JavaScript реализация стека максимально простая. Как вы наверное знаете, у массива есть методы push
и pop
. Первый добавляет элемент в конец, а второй с конца удаляет и возвращает. То есть стек уже как будто бы существует в JavaScript нативно и выглядеть это будет так:
const stack = []
stack.push(1)
stack.push(2)
stack.pop() // 2
stack.pop() // 1
stack.pop() // undefined
Но чтобы всё работало нормально, нельзя к массиву применять никакие другие методы. Ну или необходимо написать свою обёртку:
class Stack {
constructor() {
this.stack = []
}
add(value) {
this.stack.push(value)
}
get() {
return this.stack.pop()
}
}
const stack = new Stack()
stack.add(1)
stack.add(2)
console.log(stack.get()) // 2
console.log(stack.get()) // 1
console.log(stack.get()) // undefined
Таким образом мы полностью ограничили использование других методов над стеком.
Это первый подобный пост. Я решил описать большинство структур данных и выделить их отдельным хештегом #data. Тут будут все структуры данных, а так же в целом всё, что связано с данными. Закреп обновлён.
Спасибо за прочтение, это правда важно для меня ❤️
#theory
BY progway — программирование, IT

Share with your friend now:
tgoop.com/prog_way_blog/133