반응형
- 큐
: 가장 먼저 넣은 데이터를 가장 먼저 꺼낼 수 있는 구조
: FIFO(First-In, First-Out) 또는 LILO(Last-In, Last-Out) 방식(스택과 순서가 반대)
: 여기서 큐에 원하는 블럭을 넣는 것이 Enqueue, 꺼내는(나가는) 것이 Dequeue
queue_list = list()
def enqueue(data):
queue_list.append(data)
def dequeue():
data = queue_list[0]
del queue_list[0]
return data
리스트를 통해 구현하면 이렇게 나온다.
Python 중 queue 라이브러리
|
1. Queue()
import queue
data_queue = queue.Queue()
data_queue.put("a")
data_queue.put(1)
data_queue.qsize() #2출력
data_queue.get() #1 출력
data_queue.get() #a 출력
2. LifoQueue()
import queue
data_queue = queue.LifoQueue()
data_queue.put("a")
data_queue.put(1)
data_queue.get() #1 출력
: Last in First out 이기 때문에 1이 먼저 출력됨을 확인할 수 있다.
3. PriorityQueue()
import queue
data_queue = queue.PriorityQueue()
data_queue.put((5, 1))
data_queue.put((1, "a"))
data_queue.put((3, "b"))
data_queue.get() # (1, 'a') 출력
data_queue.get() # (3, 'b') 출력
우선순위대로 출력됨을 확인할 수 있다.
위처럼 보이듯 (우선순위, 내용)의 형태를 보인다.
이렇게 queue에 대해 알아보았다.
큐는 멀티태스킹을 위한 process scheduling 방식을 구현하는 데에 많이 사용된다.
반응형
'자료구조' 카테고리의 다른 글
[자료구조]스택 - 파이썬으로 구현하기 (0) | 2020.07.16 |
---|