[Java] Priority Queue ( Heap )

이도원·2022년 11월 23일
0

Java 문법

목록 보기
8/8
  • 높은 우선순위의 요소를 먼저 꺼내서 처리하는 구조.
    우선순위 큐에 들어가는 원소는 비교가 가능한 기준이 있어야 함.

  • 내부 요소는 힙으로 구성되어 이진트리 구조.

  • 내부구조가 힙으로 구성되어 있기에 시간 복잡도는 O(NLogN).

  • 우선순위를 중요시해야 하는 상황에서 주로 쓰임.

import java.util.PriorityQueue;
import java.util.Collections;

//낮은 숫자가 우선 순위인 int 형 우선순위 큐 선언
PriorityQueue<Integer> priorityQueueLowest = new PriorityQueue<>();

//높은 숫자가 우선 순위인 int 형 우선순위 큐 선언
PriorityQueue<Integer> priorityQueueHighest = new PriorityQueue<>(Collections.reverseOrder());

//삽입	(성공 true 반환)
priorityQueueLowest.add(1);	//공간 없어 add 실패시 오류
priorityQueueLowest.offer(100);	// 공간 없어 offer 실패 시 false 반환

//추출
priorityQueueLowest.poll();	//첫 번째 값 반환 비어있으면 null

//제거
priorityQueueLowest.remove(); //첫 번째값 제거 비어있으면 오류

//확인
priorityQueueLowest.peek();	//첫 번째 값 반환, 제거는 X 비어있으면 null
priorityQueueLowest.element();	//비어있으면 오류

//초기화
priorityQueueLowest.clear();

참고

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

profile
studying

0개의 댓글