츄르사려고 코딩하는 코집사입니다.
큐(Queue)
먼저 넣은 데이터를 가장 먼저 꺼내는 구조를 가지고 있는 데이터 구조.
데이터를 추가한 순서대로 제거할 수 있어서 스트리밍, 너비우선탐색(BFS) 등에서 응용
FIFO(First-In, First-Out) 방식
파이썬에서 List를 사용하여 큐(Queue)를 구현할 수 있지만, List는 무작위 접근(Random Access)에 최적화된 자료 구조이기 때문에 Queue로 사용하기엔 적합하지 않습니다.
즉, List에 접근하는 시간 복잡도는 O(N)이기 때문에, 데이터가 많으면 많을수록 그 만큼 속도가 느려진다는 단점을 가지고 있습니다.
큐(Queue)의 기능
Enqueue : 큐에 데이터를 넣는 기능
Dequeue : 큐에서 데이터를 꺼내는 기능
파이썬에서의 deque
파이썬에서 collections 모듈에서 deque는 양방향에서 추가하고 제거할 수 있는 구조를 제공합니다.
우선순위 큐(Priority Queue)
우선순위 큐(Priority Queue)는 데이터 추가는 순서가 상관 없지만, 삭제할 때는 가장 작은 값을 먼저 제거하는 큐입니다.
from queue import PriorityQueue
#우선순위 큐의 사이즈 Default는 무한대
#크기를 설정하려면 priority_queue = PriorityQueue(maxsize = 10) 처럼 지정
priority_queue = PriorityQueue()
priority_queue.put(1)
priority_queue.put(2)
priority_queue.put(3)
priority_queue.put(4)
print(priority_queue.get())
print(priority_queue.get())
'알고리즘 > 자료구조' 카테고리의 다른 글
파이썬 자료구조 배열(Array) (0) | 2020.09.29 |
---|