Priority Queue
들어간 순서에 상관없이 우선순위가 높은 데이터가 먼저 나오는 것
일반적인 큐 : FIFO(선입선출)
특징
- 모든 항목에 우선순위가 있다.
- 우선 순위가 높은 요소는 우선 순위가 낮은 요소보다 먼저 queue에서 나간다.
- 두 요소의 우선순의가 같으면 queue의 순서에 따라 처리됨
기본 동작
enqueue() | queue에 새 요소 삽입 |
dequeue() | queue에서 최대 우선 순위 요소 삭제 후 그 값 반환 |
peek() | queue에서 최대 우선 순위 요소를 반환 |
enqueue()
- 힙 끝에 새 요소 삽입
- 부모 노드와 비교하여 우선순위에 맞게 위치 변경 (여기서 우선순위는 숫자가 클수록 우선순위도 높다)
- 힙 속성이 유지될 때까지 2번 반복
dequeue()
- 루트 노드 값 추출
- 힙의 마지막 요소를 루트에 배치
- 마지막 요소 삭제
- 루트 노드부터 자식노드와 비교하여 우선순위 알맞게 위치 변경
'💡알고리즘' 카테고리의 다른 글
[알고리즘] DP(Dynamic Programming: 동적 계획법) 알고리즘 (0) | 2023.05.21 |
---|---|
[알고리즘] 그리디(Greedy: 탐욕) 알고리즘 (0) | 2023.05.20 |
[자료구조] 트리 (Tree) (0) | 2023.05.12 |
[자료구조] Set (0) | 2023.05.07 |
[자료구조] Map (0) | 2023.05.07 |