/*
Uma pilha obedece o princípio LIFO (Last in First Out)
que significa "O último a entrar é o primeiro a sair"
Uma `pilha` de livros, ou uma `pilha` de bandejas são bons
exemplos desse tipo de estrutura. Os elementos do topo são
os que saem na frente.
*/
class Stack {
constructor() {
this.items = [];
}
push(...elements) {
elements.forEach(element => this.items.push(element));
}
pop() {
return this.items.pop();
}
peek() {
return this.items.slice(-1);
}
isEmpty() {
return this.items.length === 0; // Que forma mais bonita hahaha
}
clear () {
this.items = [];
}
size() {
return this.items.length;
}
}
const stack = new Stack();
stack.push(1);
stack.push(3);
stack.push(7);
stack.pop();
stack.clear();
console.log(stack.isEmpty());