티스토리 뷰

import

from queue import PriorityQueue

 

생성

que1 = PriorityQueue()              # que1.qsize() = 무한대 
que2 = PriorityQueue(maxsize=10)    # que2.qsize() = 10

우선순위 큐의 기본 사이즈는 무한대로, 만약 최대 크기를 지정하고자 한다면 maxsize 속성을 사용해 지정한다

 

데이터 삽입

que.put(7)
que.put(3)
que.put(5)

 

데이터 삭제

print(que.get()) # 3
print(que.get()) # 5
print(que.get()) # 7

get() 메서드를 사용해 오름차순으로 데이터를 삭제하고, 삭제한 값은 반환한다

 

우선순위 지정

que.put((5, 'FIVE'))
que.put((1, 'ONE'))
que.put((3, 'THREE'))

만약 오름차순이 아니라 우선순위를 지정하고 우선순위에 의해 삭제 순서를 결정하고 싶다면

데이터를 삽입할 때에 que.put((우선순위, value)) 의 형태로 코드를 작성한다

기본 정렬 기준은 오름차순이므로, 최소 힙의 형태를 가진다

 

for _ in range(que.qsize()):
    print(que.get())
# 출력 결과
(1, 'ONE')
(3, 'THREE')
(5, 'FIVE')

우선순위 큐의 데이터를 하나씩 꺼내서 확인해보면, 우선순위의 오름차순으로 데이터가 삭제됨을 확인할 수 있다

 

for _ in range(que.qsize()):
    print(que.get()[1])
# 출력 결과
ONE
THREE
FIVE

우선순위를 제외하고 값만을 출력할 때는, 우선순위 큐에 튜플의 형태로 저장했으므로 인덱스를 활용한다

 

기타 메서드

que.qsize()    # 우선순위 큐의 크기 확인
que.empty()    # 우선순위 큐가 비어있는지 확인 
que.full()     # 우선순위 큐가 꽉 찼는지 확인 

'Computer Science > 자료구조' 카테고리의 다른 글

[이코테] 다이나믹 프로그래밍  (0) 2022.05.01
유형별 기출문제 - 그리디 알고리즘(2)  (0) 2021.12.09
힙(Heap)의 삭제 연산 과정  (0) 2021.12.08
힙(Heap)의 삽입 연산 과정  (0) 2021.12.08
힙(Heap)  (0) 2021.12.08
댓글
«   2024/07   »
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 31
최근에 올라온 글
글 보관함
Total
Today
Yesterday