[java] 자바 힙의 우선순위 큐 구현
우선순위 큐(Priority Queue)는 데이터를 넣을 때 우선순위를 기준으로 정렬하여 가장 우선순위가 높은 데이터가 가장 먼저 나오도록 하는 자료구조입니다. 자바에서는 힙(Heap)을 이용하여 우선순위 큐를 구현할 수 있습니다. 힙은 완전 이진 트리로 구성되어 있으며, 부모 노드의 우선순위가 자식 노드의 우선순위보다 높은 형태로 구성됩니다.
이번에는 자바의 우선순위 큐를 힙을 이용하여 구현하는 방법에 대해 살펴보겠습니다.
우선순위 큐 구현 예시
import java.util.PriorityQueue;
public class Main {
public static void main(String[] args) {
// 우선순위 큐 생성
PriorityQueue<Integer> priorityQueue = new PriorityQueue<>();
// 데이터 삽입
priorityQueue.add(3);
priorityQueue.add(1);
priorityQueue.add(2);
// 우선순위가 높은 순서대로 데이터 출력
while (!priorityQueue.isEmpty()) {
System.out.println(priorityQueue.poll());
}
}
}
위 예시 코드에서는 PriorityQueue
클래스를 이용하여 우선순위 큐를 생성하고, add()
메서드를 통해 데이터를 삽입합니다. 그리고 poll()
메서드를 사용하여 우선순위가 높은 순서대로 데이터를 출력하게 됩니다.
결론
자바에서는 PriorityQueue
를 이용하여 간편하게 우선순위 큐를 구현할 수 있습니다. 힙을 내부적으로 이용하여 데이터를 우선순위에 따라 정렬하고, 데이터를 삽입하거나 제거하는 과정이 매우 간편합니다. 이를 통해 우선순위 큐를 활용하여 다양한 상황에서 데이터를 효율적으로 관리할 수 있습니다.
더 많은 자바 우선순위 큐에 관한 정보는 Oracle Java Documentation를 참고하시기 바랍니다.