Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

자바스크립트로 우선순위 큐(PriorityQueue)에서 요소 제거하기

우선순위 큐(PriorityQueue)에서 디큐(dequeue)란 가장 높은 우선순위를 가진 요소를 제거하는 작업을 의미합니다.

이 글에서 다루는 구현 방식에서는 우선순위가 가장 높은 요소를 배열의 맨 끝에 저장합니다. 따라서 자바스크립트의 pop() 메서드를 사용하면 간단하게 해당 요소를 꺼낼 수 있습니다.

이를 바탕으로 dequeue 함수는 다음과 같이 구현할 수 있습니다.

구현 예제

dequeue() {
    // 큐가 비어 있는지 확인
    if (this.isEmpty()) {
        console.log("Queue Underflow!");
        return;
    }
    return this.container.pop();
}

먼저 큐가 비어 있는지 검사하여, 비어 있다면 "Queue Underflow!" 메시지를 출력하고 종료합니다. 그렇지 않으면 pop()을 호출해 배열 끝에 있는, 즉 우선순위가 가장 높은 요소를 반환합니다.

동작 확인

아래 코드를 실행하면 이 함수가 정상적으로 동작하는지 확인할 수 있습니다.

let q = new PriorityQueue(4);
q.enqueue("Hello", 3);
q.enqueue("World", 2);
q.enqueue("Foo", 8);
console.log(q.dequeue());
q.display();

실행 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

{ data: 'Foo', priority: 8 }
[ { data: 'World', priority: 2 },
   { data: 'Hello', priority: 3 }]

우선순위가 8로 가장 높았던 "Foo"가 먼저 제거되어 반환되고, 남은 요소들은 우선순위 순서대로 큐에 유지되는 것을 확인할 수 있습니다.