Queue

Queue (abstract data type) - Wikipedia

구성요소

  1. Enqeue : queue 뒤에 요소를 추가
  2. Dequeue : queue 앞에 요소를 삭제
  3. Peek : front에 위치한 데이터를 읽음
  4. Front : queue 맨 앞에 위치한 노드
  5. Rear : queue 맨 뒤에 위치한 노드

배열을 이용한 Queue 구현

class Queue{
    consturctor() {
        this.queue = [];
        this.front = 0;
        this.rear = 0;
    }

    enqueue(value) {
        this.queue[this.rear++] = value;
    }

    dequeue() {
        const value = this.queue[this.front];
        delete this.queue[this.front];
        this.front += 1;
        return value;
    }

    peek() {
        return this.queue[this.front];
    }

    size() {
        return this.rear - this.front;
    }
}