티스토리 뷰

우선순위큐(PriorityQueue)

| 데이터를 추가하는 것은 어떤 순서로 해도 노상관

| 제거될 때는 가장 작은 값을 제거

 

 

Class Import

from queue import PriorityQueue

 

우선순위큐 생성

qre = PriorityQueue()
qre = PriorityQueue(maxsize = 8)  # 최대 크기를 8로 잡음

 

우선순위큐에 원소 추가/삭제

# 추가
que.put(2)
que.put((2, "apple"))

# 삭제
que.get()

 

우선순위큐 원소들 출력

# 그냥 프린트하면
>>> print(que)
<queue.PriorityQueue object at 0x000002E758F69208>
# 결과가 이렇게 나옴

>>> print(que.get())
(2, 'apple')

우선순위큐는 인덱스로 접근도 불가능하고 iterable하지 않기 때문에 for문에서 iter로도 원소에 접근할 수 없음...

그냥 get하면서 제일 작은거부터 빼는 방법밖에...

 

 

이외의 함수들

>>> que.qsize()
1
>>> que.empty()
False
>>> que.full()
False

qsize() | 큐의 사이즈를 반환

 

empty() | 큐가 비어있으면 True, 비어있지 않으면 False 반환

 

full() | 큐가 가득차있으면 True, 그렇지 않으면 False 반환

 

 

추가

우선순위큐의 put(), get() 함수들은 O(log n)의 시간복잡도를 가짐

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함