Jun's Development Journey

[Tip_Java] Priority Queue 사용법 본문

Algorithm/Code Tip

[Tip_Java] Priority Queue 사용법

J_Jayce 2021. 4. 14. 10:25

1. Priority Queue란?

- 일반적인 큐는 FIFO(First In First Out)구조이지만, 우선순위 큐는 우선순위를 먼저 결정하고, 그 순위가 높은 순서대로 먼저 나가는 자료구조이다.

- 우선순위 큐는 일반적으로 힙으로 구현되어 있다.

- 데이터 삽입 시에는 우선순위를 기준으로 최대 혹은 최소 힙으로 구성되고, 데이터 삭제 시에는 빈 루트 자리에 맨 마지막 노드를 삽입한 후 아래로 내려가면서 맞는 자리를 찾아 저장하는 방식이다. 

 

 

2. Priority Queue 사용법

2-1) 선언

- 우선순위 큐의 디폴트 정렬 방식은 우선순위가 낮은 것 기준으로 정렬된다. 높은 순으로 정렬을 하려면 선언시 매개변수에 Collections.reverseOrder() 메서드를 활용하면 된다.

- 정수형, 문자열 이외에 임의의 클래스를 원소로 사용하려면 Comparable<>를 상속받아 구현하면 된다.

 

2-2) 삽입 및 삭제

2-3) 출력

- 우선순위가 가장 높은 값을 참조하려면 peek()이라는 메소드를 사용하면 된다.