큐(Queue)에서 peek란 큐의 맨 앞(head)에 있는 값을 조회하는 동작을 의미합니다. dequeue와 달리 요소를 제거하지 않고 값만 확인할 수 있어, 다음에 처리될 데이터를 미리 살펴봐야 할 때 유용하게 사용됩니다.
peek 함수 구현하기
peek 함수는 다음과 같이 구현할 수 있습니다.
peek() {
if (isEmpty()) {
console.log("Queue Underflow!");
return;
}
return this.container[0];
}이 함수는 먼저 큐가 비어 있는지 검사하고, 비어 있다면 "Queue Underflow!" 메시지를 출력한 뒤 종료합니다. 큐에 요소가 있다면 배열의 첫 번째 요소인 this.container[0]을 그대로 반환합니다.
동작 확인하기
구현한 peek 함수가 정상적으로 작동하는지 아래 코드로 확인해 보겠습니다.
let q = new Queue(2); q.enqueue(3); q.enqueue(4); console.log(q.peek()); q.display();
실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
3 [ 3, 4 ]
실행 결과에서 알 수 있듯이, peek()는 큐의 맨 앞 값인 3을 반환만 할 뿐 제거하지 않습니다. 따라서 이후 display()를 호출했을 때 여전히 [3, 4]라는 전체 큐의 내용이 그대로 출력되는 것을 확인할 수 있습니다.
정리하면, dequeue()는 맨 앞 요소를 반환하면서 큐에서 제거하는 반면, peek()는 요소를 그대로 두고 값만 읽어온다는 점이 핵심적인 차이입니다.