스택은 접시를 쌓아 놓았다고 생각하면 이해가 잘 됩니다.
맨위에 접시를 쌓고 접시를 가져갈때도 맨위에 부터 가져 갑니다.
class Stack {
constructor() {
this.storage = {}; // 빈 객체에 스택으로 담겠습니다.
this.top = 0;
}
size() {// 스택의 사이즈
if(this.top < 0){ // 스택에 더이상 없을때
return 0;
}
return this.top;
}
push(element) {
this.storage[this.top] = element;//먼저 들어 간것이 나중에 나온다
this.top++ ;
}
pop() {
this.top--;//
const pop = this.storage[this.top];
delete this.storage[this.top];//현재 맨위에 탑 삭제
return pop;
}
}
선입선출 / FIFO(First In First Out)
큐는 놀이공원에서 줄서는것과 같다.
먼저 온 사람이 맨 앞에 서있고 제일 먼저 기구를 탄다.
나중에 온사람은 뒤에 서있고 나중에 기구를 탄다.
class Queue {
constructor() {
this.storage = {};// 빈큐
this.front = 0;
this.rear = 0;
}
size() {
const size = this.rear - this.front;
if (size < 0) {// 큐가 비어 있을때
return 0;
} else {
return size;
}
}
enqueue(element) {
this.storage[this.rear] = element;//뒤쪽에 요소 추가
this.rear++;
}
dequeue() {
const removeItem = this.storage[this.front];
delete this.storage[this.front];//앞쪽부터 삭제
this.front++;
return removeItem;
}
}
맨위에 그림 탐난다...나 언제 그려줄거야 ㅠ