front와 rear을 사용하는 큐는 원형 큐에 비해서 메모리 낭비가 있는 편이다.
파이썬에서 원형 큐를 사용하기 위해서는 리스트나 덱을 활용하여 구현할 수 있다.
리스트를 큐 처럼 사용하기
queue = []
# 큐에 데이터 추가
queue.append(1)
queue.append(2)
queue.append(3)
# 큐의 맨 앞 데이터 제거
first_item = queue.pop(0)
print(first_item) # 출력: 1
# 큐에 데이터 추가
queue.append(4)
# 큐의 맨 앞 데이터 제거
first_item = queue.pop(0)
print(first_item) # 출력: 2
덱을 큐처럼 활용하기
# deque = Double Ended Queue의 줄임말
# 양 끝에서 삽입이나 삭제할 수 있는 큐
# 위의 특징 때문에 큐를 구현할 때 덱을 사용하는 것이 좋음
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)
# 큐의 맨 앞 데이터 제거
first_item = queue.popleft()
print(first_item) # 2
*pop(0)이 popleft()보다 훨씬 느리므로, 반드시 pop(0) 대신에 popleft() 를 사용할 것.
'Python' 카테고리의 다른 글
[5주차]9장 이진트리 (0) | 2024.03.21 |
---|---|
[4주차]8장 해시 (0) | 2024.01.30 |
[3주차]6장 스택 (0) | 2024.01.30 |
[2주차]5장 배열 (0) | 2024.01.30 |
[2주차]4장 코딩테스트에 필요한 필수 문법 (0) | 2024.01.30 |