큐의 개념
큐(Queue)는 정확히 스택(Stack)과 반대되는 개념이다
스택은 선입후출 / 후입선출(First In, Last Out)이었다면,
큐는 선입선출(First In, First Out)이다.
큐의 세부 동작에 대해 살펴보기
Insert(삽입)
1. 삽입 전 , Is Full을 통해 현재 큐가 가득 찼는지 확인
2. 가득차지 않았다면, rear=rear+1 증가 후 데이터 삽입
Pop(추출)
1. IsEmpty를 통해 빈큐인지 확인
2. 비어있지 않았다면 front = front +1
queue = [] #스택처럼 배열로 선언
#데이터 추가
queue.append(1)
queue.append(2)
queue.append(3)
#맨 앞 데이터 제거
first_item = queue.pop(0)
print(first_item) #출력 : 1
#큐에 데이터 추가
queue.append(4)
queue.append(5)
#큐의 맨 앞 데이터 제거
first_item = queue.pop(0)
print(first_item) #출력: 2
덱을 큐처럼 활용하기
from collections import deque
queue = deque()
#큐에 데이터 추가
queue.append(1)
queue.append(2)
queue.append(3)
#맨 앞 데이터 제거
first_item = queue.popleft()
print(first_item) # 1
#큐에 데이터 추가
queue.append(4)
queue.append(5)
#맨 앞 데이터 제거
first_item = queue.popleft()
print(first_item) # 2
deque의 popleft()가 list의 pop(0)보다 훨씬 빠르다!!!!
♬ 자료 출처 - 책
코딩 테스트 합격자 되기 - 파이썬 편
이 포스팅의 모든 내용은 해당 책의 내용을 바탕으로 하고 있습니다.
감사합니다.