[java] 자바 힙을 이용한 우선순위 큐 구현 예시

우선순위 큐는 데이터를 다음에 처리될 순서대로 유지하는 자료 구조입니다. 이러한 큐는 힙(Heap)을 사용하여 구현할 수 있습니다. 아래는 자바를 사용하여 힙을 이용한 우선순위 큐를 구현하는 예시입니다.

1. 우선순위 큐 클래스 정의

import java.util.*;

public class PriorityQueueExample {
    public static void main(String[] args) {
        PriorityQueue<Integer> pq = new PriorityQueue<>();

        pq.add(10);
        pq.add(30);
        pq.add(20);

        System.out.println("Priority Queue: " + pq);

        while (!pq.isEmpty()) {
            System.out.println("Next item to be processed: " + pq.poll());
        }
    }
}

위 예시에서는 PriorityQueue 클래스를 사용하여 우선순위 큐를 구현했습니다.

2. 실행 결과

Priority Queue: [10, 30, 20]
Next item to be processed: 10
Next item to be processed: 20
Next item to be processed: 30

3. 설명

  1. PriorityQueue 클래스는 힙을 기반으로 한 우선순위 큐를 구현하는 데 사용됩니다.
  2. add() 메서드를 사용하여 요소를 큐에 추가하고, poll() 메서드를 사용하여 우선순위가 가장 높은 요소를 가져올 수 있습니다.

이 예시를 통해 자바에서 힙을 이용한 우선순위 큐를 구현하는 방법을 살펴보았습니다.

위의 예제는 Java의 내장 우선순위 큐 클래스를 사용하여 구현되었으며, 실제 프로덕션 환경에서는 더 많은 기능과 예외 처리가 필요할 수 있습니다.

참고 자료