가장 나중에 쌓은 데이터를 가장 먼저 빼낼 수 있는 데이터 구조입니다.
LIFO(Last-In, First-Out) 또는 FILO(First-In, Last-Out)
const stack = new Stack();
stack.size(); // 0
for(let i = 1; i < 10; i++) {
stack.push(i);
}
stack.pop(); // 9
stack.pop(); // 8
stack.size(); // 7
stack.push(8);
stack.size(); // 8
...
class Stack {
constructor() {
this.storage = {};
this.top = 0;
}
size() {
return this.top;
}
push(element) {
this.storage[this.top] = element;
this.top += 1;
}
pop(){
if(this.size() <= 0){
return
}
let result = this.storage[this.top - 1];
delete this.storage[this.top - 1];
this.top -= 1;
return result;
}
}