자료구조 체크포인트
스택은 쌓여있는 접시더미와 같이 작동한다.
새로운 접시가 쌓일때도 맨 위에서 쌓이고, 가져갈 때도 맨위에서
가지고 가는것과 비슷하다.
메소드 구현
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; // 오류처리
}
this.top -= 1;
const result = this.storage[this.top];
delete this.storage[this.top];
return result; // 반환하기 위해 변수에 담아둔다.
}
}
module.exports = Stack;
Queue는 놀이공원에서 서는 줄과 같이 작동합니다. 사람들이 맨 끝에 줄을 서고, 맨 앞에서부터 놀이기구에 탑승하는 것과 같습니다. (FIFO: first in, first out).
class Queue {
constructor() {
this.storage = {};
this.front = 0;
this.rear = 0;
}
size() {
return this.rear - this.front;
}
enqueue(element) {
this.storage[this.rear] = element;
this.rear += 1;
}
dequeue() {
if (this.size() === 0) {
return;
}
const result = this.storage[this.front];
delete this.storage[this.front];
this.front += 1;
return result;
}
}
module.exports = Queue;