해나아부지 개발일지

[자료구조] Queue in JavaScript 본문

Developers/Data Structure

[자료구조] Queue in JavaScript

__APPA 2020. 7. 25. 22:43

정의(Definition)

음식이 입으로 들어가면 항문으로 나온다. 먼저 들어간 것이 먼저 나온다.

 FIFO(First In First Out)인 자료구조

 

위키백과를 보시죠

큐(queue)는 컴퓨터의 기본적인 자료 구조의 한가지로, 먼저 집어 넣은 데이터가 먼저 나오는 FIFO (First In First Out)구조로 저장하는 형식을 말한다. 영어 단어 queue는 표를 사러 일렬로 늘어선 사람들로 이루어진 줄을 말하기도 하며, 먼저 줄을 선 사람이 먼저 나갈 수 있는 상황을 연상하면 된다.
나중에 집어 넣은 데이터가 먼저 나오는 스택과는 반대되는 개념이다.
프린터의 출력 처리나 윈도 시스템의 메시지 처리기, 프로세스 관리 등 데이터가 입력된 시간 순서대로 처리해야 할 필요가 있는 상황에 이용된다.

연산(Method)

  1. enqueue()  꼬리(rear)에 하나씩 넣는다.
  2. dequeue()  머리(front)에서부터 하나씩 꺼낸다.
  3. size()  머리에서부터 꼬리까지의 길이를 반환한다.

구현(implementation)

const queue = {};
let front = 0;
let rear = 0;
  
let enqueue = (element) => {
    rear++;
    queue[rear] = element;
}

let dequeue = () => {
    if (this.rear !== this.front) {
      front++;
      delete queue[front];
    } else { // 모든 값이 dequeu되면 front와 rear값을 초기화
    front = 0, rear = 0
    }
}

let size = () => {
  return this.rear - this.front;
}
Comments