Python 자료구조
큐 Queue
- 줄을 서는 행위와 유사
- 가장 먼저 넣은 데이터를 가장 먼저 꺼낼 수 있는 구조
- FIFO(First-In, First-Out) 또는 LILO(Last-In, Last-Out) 방식
- 멀티태스킹을 위한 프로세스 스케쥴링 방식을 구현하기 위헤 많이 사용됨 (운영체제 참조)

용어
- Enqueue : 큐에 데이터를 넣는 기능
- Dequeue : 큐에서 데이터를 꺼내는 기능
참고
Python 라이브러리를 활용한 Queue
import queue
Queue()
data = queue.Queue()
data.put("MSN")
data.put(12345)
data.qsize()
>>> 2
data.get()
>>> "MSN"
data.get()
>>> 12345
data.qsize()
>>> 0
LifoQueue()
data = queue.LifoQueue()
data.put("MSN")
data.put(12345)
data.get()
>>> 12345
data.get()
>>> "MSN"
PriorQueue()
data = queue.PriorityQueue()
data.put(42, "MSN")
data.put(15, 12345)
data.put(20, 'Sea')
data.get()
>>> (15, 12345)
data.get()
>>> (20, 'Sea')
data.get()
>>> (42, "MSN")
연습
- 리스트 변수로 큐를 다루는 Enqueue, Dequeue 기능 구현
queue_list = []
def enqueue(data):
queue_list.append(data)
def dequeue():
data = queue_list[0]
del queue_list[0]
return data
queue_list = []
def enqueue(data):
queue_list.append(data)
def dequeue():
data = queue_list[-1]
del queue_list[-1]
return data
queue_list = []
def enqueue(index, data):
queue_list.append((int(index),data))
def dequeue():
data = queue_list.sorted(key=lambda x:x[0])
del queue_list[queue_list.index(data)]
return data