A LIFO data structure!
The last element added to the stack will be the first element removed from the stack
Javascript 를 이용하여 Stack 을 구현해보기
class Stack {
constructor() {
this.storage = {};
this.top = 0;
}
size() {
return this.top;
}
push(element) {
this.storage[this.top] = element;
this.top++;
}
pop() {
let topVal = this.storage[this.top-1];
delete this.storage[this.top-1];
if(this.top > 0){
this.top--;
}
return topVal;
}
}
A FIFO data structure
First In First Out
선입선출
How do we use them in programming?
Queue는 프린터의 출력 처리나 윈도 시스템의 메시지 처리기, 프로세스 관리 등 데이터가 입력된 시간 순서대로 처리해야 할 필요가 있는 상황에 이용된다. (위키백과)
Javascript 를 이용하여 Queue 을 구현해보기
class Queue {
constructor() {
this.storage = {};
this.front = 0;
this.rear = 0;
}
size() {
return this.rear;
}
enqueue(element) {
this.storage[this.rear] = element;
this.rear++;
}
dequeue() {
let frontVal = this.storage[this.front];
delete this.storage[this.front];
for(let i=1 ; i<this.rear ; i++){
let curr = this.storage[i];
this.storage[i-1] = curr;
}
if(this.rear > 0){
this.rear--;
}
delete this.storage[this.rear];
return frontVal;
}
}