큐(Queue)에 요소를 인큐(enqueue)한다는 것은 배열의 맨 끝에 요소를 추가하는 것을 의미합니다. 컨테이너 배열의 끝을 큐의 꼬리(tail)로 간주하고, 모든 삽입 연산은 이 위치를 기준으로 수행됩니다.
enqueue 함수 구현
배열의 끝에 요소를 추가하는 것이므로, 자바스크립트의 push() 메서드를 활용하면 간단하게 enqueue 기능을 구현할 수 있습니다. 아래 예제를 살펴보겠습니다.
enqueue(element) {
// 큐가 가득 찼는지 확인
if (this.isFull()) {
console.log("Queue Overflow!");
return;
}
// 끝에 요소를 추가해야 하므로 push 사용
this.container.push(element);
}이 코드의 동작 순서는 다음과 같습니다.
- 먼저
isFull()메서드를 호출하여 큐가 이미 가득 찼는지 검사합니다. - 큐가 가득 차 있다면 "Queue Overflow!"(큐 오버플로우) 메시지를 출력하고 함수를 종료합니다.
- 여유 공간이 있다면
push()를 통해 새 요소를 배열의 맨 뒤에 추가합니다.
동작 확인하기
구현한 enqueue 함수가 정상적으로 작동하는지 확인해 보겠습니다. 크기가 2인 큐를 생성한 후, 세 개의 요소를 연속해서 추가해 보겠습니다.
let q = new Queue(2); q.enqueue(1); q.enqueue(2); q.enqueue(3); q.display();
실행 결과
위 코드를 실행하면 다음과 같은 출력 결과를 얻을 수 있습니다.
Queue Overflow! [ 1, 2 ]
출력 결과를 보면, 첫 번째와 두 번째 요소(1, 2)는 정상적으로 큐에 추가되었지만, 세 번째 요소(3)를 추가하려고 할 때 큐의 최대 용량(2)을 초과했기 때문에 오버플로우 메시지가 출력되고 해당 요소는 무시된 것을 확인할 수 있습니다.