Queue에 대한 이해 Javascript

cptkuk91·2022년 8월 18일
1

Algorithm

목록 보기
68/161

Queue

가장 먼저 넣은 데이터를 가장 먼저 꺼낼 수 있는 구조
FIFO(First-In, First-Out) 또는 LILO(Last-In, Last-Out)

사용 예시

const queue = new Queue();

queue.size(); // 0
for(let i = 1; i < 10; i++) {
  	queue.enqueue(i);
}
queue.dequeue(); // 1
queue.dequeue(); // 2
queue.size(); // 7
queue.enqueue(10);
queue.size(); // 8
queue.dequeue(); // 3
queue.dequeue(); // 4
queue.size(); // 6
...

풀이

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;
    }
}

profile
메일은 매일 확인하고 있습니다. 궁금하신 부분이나 틀린 부분에 대한 지적사항이 있으시다면 언제든 편하게 연락 부탁드려요 :)

0개의 댓글