제한적으로 접근할 수 있는 나열 구조. LIFO(Last-In-First-Out) 자료를 밀어 넣는다고해서 Push, 넣어둔 자료를 뺀다고 해서 Pop이라고 한다.
class Stack {
constructor(){
this.arr = [];
}
push(data){
this.arr.push(data);
}
pop(index){
if(index === this.arr.length - 1){
return this.arr.pop();
}
let result = this.arr.splice(index, 1);
return result;
}
empty(){
if(this.arr.length === 0){
return true;
} else {
return false;
}
}
// 가장 마지막에 들어온 숫자.
top(){
return this.arr[this.arr.length - 1];
}
// 가장 먼저 들어온 숫자.
bottom(){
return this.arr[0];
}
}
let result = new Stack();
result.push(1);
result.push(2);
result.push(3);
result.push(4);
console.log(result.arr[0]); // 1
let resultPop = result.pop(2);
console.log(result);
console.log(result.top());
console.log(result.bottom());
Stack과 반대 개념이다. 나중에 넣은 데이터가 먼저 나온다. FIFO(First-In-First-Out)