
📢 우선순위 큐
- 우선 순위가 높은 데이터가 먼저 나옴(!= FIFO)
- (1). 모든 테이터에 우선순위가 있다.
- (2). Dequeue 시, 우선순위가 높은 순으로 나감.
- (3). 우선 순위가 같은 경우는 FIFO(선입선출)한다.
📢 우선 순위 큐의 삽입/삭제
- 최소 힙 및 최대 힙의 삽입과 삭제와 같음
📢 구현 하는 방법
- 배열
- 연결 리스트
- 힙 -> 우선순위 큐 자료형 클래스는 힙으로 구성되어있다.
| enqueue() | dequeue() | |
| 정렬된 배열 | O(n) | O(1) |
| 정렬된 연결 리스트 | O(n) | O(1) |
| 힙 | O(logN) | O(logN) |
📢 PriorityQueue 사용 방법
// 우선순위: 낮은 숫자 순
PriorityQueue<Integer> pq = new PriorityQueue<>();
pq.add(5);
pq.add(7);
pq.add(3);
pq.add(1);
pq.add(9);
System.out.println(Arrays.toString(pq.toArray())); //[1, 3, 5, 7, 9]
// 우선순위: 높은 숫자 순
PriorityQueue<Integer> pq2 = new PriorityQueue<>(Collections.reverseOrder());
pq2.add(5);
pq2.add(7);
pq2.add(3);
pq2.add(1);
pq2.add(9);
System.out.println(Arrays.toString(pq2.toArray())); //[9, 7, 3, 1, 5]
📢 PriorityQueue 노트 정리

반응형
'Knowledge > 자료구조' 카테고리의 다른 글
| [자료구조] 트리(Tree)의 구조와 순회 (0) | 2023.08.19 |
|---|---|
| 힙(Heap)의 구조 [삽입/삭제] (0) | 2023.08.12 |
| [Java/자료구조] 연결리스트(Linked List)의 특징 (0) | 2023.08.11 |
댓글