본문 바로가기
Study/Data Structure

[Data Structure] 큐(Queue)

by ngool 2024. 8. 10.

본 포스트에서는 큐(Queue)에 대해 이야기해보려 합니다.

 

큐는 데이터를 순서대로 처리하는 효율적인 자료구조 중 하나입니다!

본격적으로 큐에 대해 알아보도록 하죠~


(Queue)란 무엇인가

큐는 FIFO(First In, First Out) 방식으로 작동하는 자료구조입니다.

즉, 먼저 들어온 데이터가 먼저 나가는 구조라는 것이죠!

큐의 기본 동작

1. 행동

  • Enqueue: 큐의 뒤쪽(꼬리 부분)에 새로운 데이터 추가
  • Dequeue: 큐의 앞쪽(머리 부분)에서 데이터 꺼내기

Enqueue, Dequeue 예시

2. 현재 상태 확인

  • Peek: 큐의 앞쪽에 있는 데이터를 제거하지 않고 확인

Peek 예시

  • isEmpty: 큐가 비어 있는지 확인

isEmpty 예시


큐의 다양한 종류

큐는 기본적인 형태 외에도 특정한 상황에 맞게 변형된 여러 종류가 있습니다.

  • 원형 큐(Circular Queue): 일반 큐와 달리, 마지막 요소가 다시 첫 번째 요소와 연결되는 구조를 가지고 있어 공간을 효율적으로 사용할 수 있습니다.
  • 우선순위 큐(Priority Queue): 큐에 들어오는 데이터에 우선순위를 부여해, 우선순위가 높은 데이터가 먼저 처리되도록 합니다.
  • 덱(Deque, Double-Ended Queue): 큐의 양쪽 끝에서 데이터를 추가하거나 제거할 수 있는 구조입니다.

큐의 장점과 단점

장점

  • 간단하고 직관적인 구: FIFO 방식을 따르기 때문에 이해하기 쉽고, 간단하게 구현할 수 있습니다.
  • 순서 보장: 들어온 순서대로 데이터를 처리하기 때문에, 특정 순서가 중요한 작업에 적합합니다.

단점

  • 고정된 크기: 배열로 구현된 큐의 경우, 미리 크기를 정해야 하므로, 크기가 고정됩니다.
  • 랜덤 접근 불가: 큐의 특성상 중간에 있는 데이터를 바로 접근할 수 없고, 반드시 앞쪽 데이터부터 제거해야 합니다.

'Study > Data Structure' 카테고리의 다른 글

[Data Structure] 힙(Heap)  (0) 2024.08.29
[Data Structure] 이진 탐색 트리(Binary Search Tree, BST)  (0) 2024.08.28
[Data Structure] 트리(Tree)  (0) 2024.08.27
[Data Structure] 덱(Deque)  (0) 2024.08.10