영어로 Queue : '일이 처리되기를 기다리는 리스트'라는 의미이다.
프로그래밍에서 목록 or 리스트에서 접근이 양쪽에서 가능한 구조로 FIFO(First-in, First-Out)가 기본 원리이다.
put() : box1, 2, 3, 4를 올린다
peek() : 큐에 가장 먼저 들어간 데이터가 무엇인지 확인할 수 있다.
get() : 큐에 가장 먼저 들어왔던 box1이 list에서 빠져나온 것을 확인할 수 있다.
# list를 가지고 있는 Queue를 선언하고, 클래스명을 Queue로 지정한다.
# put() : 데이터를 넣을 수 있는 함수, list의 append()함수와 동일하다.
# peek() : queue의 가장 앞에있는(먼저 들어간 데이터)를 확인하기 위해 index 0을 선택한다.
# get() : stack에서 pop(0)은 index값이 0인 데이터(가장 먼저 들어간)를 추출할 수 있다.
class Queue(list) :
put = list.append()
def peek(self):
return self[0]
def get(self):
return self.pop(0)
put() : queue에 데이터를 추가한다.
q = Queue()
q.put(1)
q.put(5)
q.put(10)
print("my queue is :" , q)
get() : 가장 먼저 들어간 데이터를 추출한다.(데이터 삭제된다)
print("removed value is : ", q.get(0) )
print("my queue is : ", q)
peek() : 데이터를 추출하지 않고 확인만 한다.
print("peeked value is :", q.peek())
print("my queue is : ", q)
Queue 클래스를 직접 구현할 필요 없이 바로 사용 가능하다.
from queue import Queue
q = Queue()
q.put(1)
q.put(5)
q.put(10)
print("my queue is :", q)
get() : 가장 먼저 들어간 데이터인 1을 추출한다.
queue에는 더이상 1이 존재하지 않는다.
프린터는 절대 거꾸로 인쇄하지 않는다.
먼저 명령을 받은 문서1부터 차례대로 출력한다.