반응형

@notepad_jj2

츄르사려고 코딩하는 코집사입니다.


큐(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

+ Recent posts