11.2 우선순위 큐
우선순위 큐는 키를 가진 원소 집합을 위한 자료 구조로, 힙처럼 최대 우선순위 큐와 최소 우선순위 큐가 있습니다. 우선순위 큐는 이진 탐색 트리로도 구현할 수 있습니다. 이진 탐색 트리가 min과 max 연산, insert와 delete 연산을 지원하기 때문입니다. 하지만 우선순위 큐는 힙으로 구현하는 경우가 많습니다. 이 절에서는 파이썬이 제공하는 heapq 모듈을 이용해서 최소 우선순위 큐(min priority queue)를 구현해 보겠습니다. 그 전에 최소 우선순위 큐의 ADT를 기술해 보겠습니다.
MinPriorityQueue
- Object
: 키를 가진 원소 집합
- Operation
1. is_empty( ) -> Boolean
: 큐가 비어 있으면 TRUE, 아니면 FALSE 반환
2. push(item)
: 큐에 원소 item을 삽입