728x90
반응형
stack
스택은 '쌓다' 라는 뜻으로 데이터를 순서대로 쌓는 구조
데이터를 쌓고 위에 쌓인 데이터 부터 사용한다
선입 후출(FILO - First In Last Out)
stack의 사용 예
브라우저의 뒤로가기, 앞으로가기 기능을 2개의 스택을 이용해 구현한다
prevStack - 뒤로가기 버튼을 누르면 스택 내 쌓인 페이지 중 가장 최근 페이지로 이동 후 현재 페이지를 nextStack에 저장
현제 페이지
nextStack - 앞으로 가기 버튼을 누르면 스택 내 쌓인 페이지 중 가장 최근 페이지로 이동 후 현재 페이지를 prevStack에 저장
class를 통한 stack 구현
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.top == 0) {
return;
}
const result = this.storage[this.top-1];
delete this.storage[this.top-1];
this.top -= 1;
return result;
}
}
배열(array)을 stack으로 사용하기
// const array = new Array() 미리 정의된 Array 객체를 사용합니다.
const stack = [];
stack.push(1); // [1]
stack.push(2); // [1, 2]
stack.push(3); // [1, 2, 3]
stack.push(4); // [1, 2, 3, 4]
stack.push(5); // [1, 2, 3, 4, 5]
console.log(stack); // [1, 2, 3, 4, 5]
stack.pop(); // [1, 2, 3, 4]
stack.pop(); // [1, 2, 3]
console.log(stack); // [1, 2, 3]
반응형
'자료구조_알고리즘' 카테고리의 다른 글
자료구조/알고리즘) 재귀 (0) | 2022.03.22 |
---|---|
자료구조) 자료구조 - Queue (0) | 2022.03.18 |
자료구조) 자료구조 (0) | 2022.03.18 |
코딩테스트 연습) [1차] 뉴스 클러스터링 (0) | 2021.06.15 |
알고리즘) 우선순위 큐, 힙 (0) | 2021.06.09 |
댓글