- (보통 깔끔하게 정돈된) 무더기
- 많음, 다량
- (깔끔하게 정돈하여) 쌓다; 쌓이다, 포개지다
자료를 쌓아 올리는 형태이다
가장 먼저 들어온 데이터를 가장 나중에 배출되는 후입선출 방식(LIFO : Last IN First Out)
//Stack 자료구조
class Stack {
constructor() {
//stack으로 관리 될 요소들의 집함을 객체로 담는다.
this.storage = {};
//항상 가장 최근의 요소의 위치를 가리켜야한다.
this.top = -1;
}
//storage가 가지는 키의 수
size() {
return this.top + 1;
}
//storage에 마지막에 삽입할 요소
push(element) {
this.top ++;
this.storage[this.top]= element;
}
//storage 마지막 요소를 삭제
pop() {
let currentData = this.storage[this.top];
if(this.top === -1){
return '해당 storage가 비어있습니다.'
}
delete this.storage[this.top];
this.top--;
//마지막 요소를 삭제
return currentData;
}
}
let stack = new Stack();
stack.push(1);
console.log(stack.storage);//{0: 1}
stack.push(2);
console.log(stack.storage);//{0: 1, 1: 2}
stack.push(3);
console.log(stack.storage);//{0: 1, 1: 2, 2: 3}
console.log(stack.pop())//3
console.log(stack.storage);//{0: 1, 1: 2}
console.log(stack.pop())//2
console.log(stack.storage);//{0: 1}