Stack — абстрактный тип данных, представляющий собой список элементов, организованных по принципу LIFO (англ. last in — first out, «последним пришёл — первым вышел»).
Аналогично магазину в огнестрельном оружии, стрельба начнётся с патрона, заряженного последним.
Стек может иметь следующие методы:
class Stack {
constructor() {
this.count = 0;
this.storage = {};
}
push(value) {
this.storage[this.count] = value;
this.count++;
}
pop() {
if (this.count === 0) return undefined;
this.count--;
let result = this.storage[this.count];
delete this.storage[this.count];
return result;
}
peek() {
return this.storage[this.count - 1];
}
length() {
return this.count;
}
}