데이터가 입력되면 입력되는 순서대로 쌓고, 먼저 들어온 것부터 먼저 사용하는(FIFO, First In First Out) 자료구조.
큐는 대표적으로 현재 수행 중인 프로세스를 관리할 때 사용한다.
여러 프로세스가 수행 중인데, 새로운 프로세스가 수행되어야 하는 경우 기존에 수행되던 프로세스 중에서 가장 먼저 메모리에 올라온 프로세스가 아웃되고, 새로운 프로세스를 메모리에 올린다. 이 경우 운영체제는 수행 중인 프로세스를 큐의 형태로 관리한다.
python 3.8
# Queue
class Queue(object):
def __init__(self):
self.queue = []
def is_empty(self):
if self.queue:
return False
return True
def enqueue(self, data):
self.queue.append(data)
def dequeue(self):
deleted = None
if self.is_empty():
print('Queue is empty!')
else:
deleted = self.queue.pop(0)
return deleted
github : https://github.com/honeybeeveloper/data-structure/blob/develop/queue.py
참고 : 책 <그림으로 정리한 알고리즘과 자료구조>