큐에서는 스택과는 반대로, 어느 시점에서 큐에 들어 있는 데이터 원소를 꺼내면 큐에 들어 있는 원소들 중 가장 먼저 넣었던 것이 꺼내집니다. 따라서 큐를 선입선출 (FIFO; first-in first-out) 이라고도 부릅니다.
# 배열로 구현한 큐
class ArrayQueue:
# 빈 큐를 초기화
def __init__(self):
self.data = []
# 큐의 크기를 리턴
def size(self):
return len(self.data)
# 큐가 비어있는지 판단
def isEmpty(self):
return self.size() == 0
# 데이터 원소 추가 연산
def enqueue(self, item):
self.data.append(item)
# 데이터 원소 삭제 연산
def dequeue(self):
return self.data.pop(0)
# 큐의 맨 앞 원소 반환
def peek(self):
return self.data[0]
연산 | 복잡도 |
---|---|
size() | |
isEmpty() | |
enqueue(x) | |
dequeue() | |
peek() |