알고리즘, 자료구조

우선순위 큐

메오백 2023. 10. 29.

https://velog.io/@gillog/Java-Priority-Queue%EC%9A%B0%EC%84%A0-%EC%88%9C%EC%9C%84-%ED%81%90

 

[Java] Priority Queue(우선 순위 큐)

PriorityQueue란 우선순위 큐로써 일반적인 큐의 구조 FIFO(First In First Out)를 가지면서, 데이터가 들어온 순서대로 데이터가 나가는 것이 아닌 우선순위를 먼저 결정하고 그 우선순위가 높은 데이터

velog.io

 

우선순위 큐란?

큐 : FIFO 구조로 먼저 들어간 값이 먼저 나오는 자료구조이다. 

우선순위 큐 : 들어간 값 중 우선순위가 가장 높은 값이 먼저 나오는 자료구조이다. 

 

Java에서 우선순위 큐

java에서 우선순위 큐는 java.util.PriorityQueue 클래스를 통해 사용할 수 있다.

사용 방법은 일반 queue와 같다. 

 

		// 작은 수가 우선순위가 높음
		PriorityQueue<Integer> pq1 = new PriorityQueue<>();
		// 큰 수가 우선순위가 높음 
		PriorityQueue<Integer> pq2 = new PriorityQueue<>(Collections.reverseOrder());
		
		pq1.offer(10);
		pq1.add(20);
		pq1.poll();
		pq1.remove();
		pq1.peek();
		pq1.isEmpty();

 

직접 생성한 객체에 대해 우선순위 큐를 사용하기 위해서는 Comparable 인터페이스를 구현해 줘야 한다.

https://velog.io/@jidam03/Comparable%EA%B3%BC-Comparator

 

Comparable과 Comparator

출처Comparable과 Comparartor는 모두 인터페이스이다. Comparable, Comparator를 사용하려면 인터페이스 내에 선언된 메소드를 구현해야 한다.Comparable 인터페이스에는 CompareTo(T o) 메서드 하나가 선언되어

velog.io

Comparalbe 인터페이스 관련해서는 위 글을 참고하면 된다. 

 

'알고리즘, 자료구조' 카테고리의 다른 글

Dynamic Programming  (0) 2023.12.16
이분탐색  (0) 2023.10.20
분할 정복  (1) 2023.10.10

댓글