본문으로 건너뛰기

먼저 들어간 데이터가 먼저 나오는 '큐(Queue)'

먼저 들어간 데이터가 먼저 나오는 '큐(Queue)'

큐(Queue)는 일상 생활에서 줄을 서는 것과 유사한 방식으로 동작하며, 먼저 들어간 데이터가 먼저 나오는 '선입선출'(First In First Out, FIFO) 구조를 가지고 있습니다.

큐는 프린터의 작업 대기열, 태스크 스케쥴링 등 다양한 상황에 활용됩니다.


큐의 주요 연산

큐(Queue)는 선입선출(FIFO, First In First Out) 원리에 기반한 자료 구조로, 주요 연산은 다음과 같습니다:

  1. Enqueue: 큐에 요소를 추가하는 연산입니다. 이 연산은 큐의 뒤쪽(tail)에 새 요소를 삽입합니다. 큐에 요소가 추가될 때, 이 요소는 큐의 마지막 위치에 들어갑니다.

  2. Dequeue: 큐에서 요소를 제거하는 연산입니다. 이 연산은 큐의 앞쪽(head)에서 요소를 제거하고, 제거된 요소를 반환합니다. 큐에서 요소를 제거하면, 그 다음 요소가 큐의 새로운 앞쪽이 됩니다.

  3. Peek 또는 Front: 큐의 앞쪽에 있는 요소를 조회하는 연산입니다. 이 연산은 큐의 맨 앞에 있는 요소를 반환하지만, 해당 요소를 큐에서 제거하지는 않습니다.

  4. IsEmpty: 큐가 비어 있는지 확인하는 연산입니다. 큐에 요소가 없으면 True를, 그렇지 않으면 False를 반환합니다.


큐 구현 예시

파이썬에서는 리스트(list)로 간단한 큐를 구현할 수 있으며, 효율적인 큐 구현을 위해 collections 모듈(연관된 외부 코드의 모음)의 deque 클래스를 사용할 수 있습니다.

deque는 양쪽 끝에서 데이터를 추가하거나 제거할 수 있는 자료구조입니다.

큐 구현 예시
from collections import deque

# 큐 생성
queue = deque()

# Enqueue 연산
queue.append('A') # A 추가
queue.append('B') # B 추가

# Dequeue 연산
print(queue.popleft()) # 'A' 출력 및 제거
print(queue.popleft()) # 'B' 출력 및 제거

다음 내용이 궁금하다면?

월 12,500원 PLUS 멤버십 가입 or 강의를 등록해 주세요!