본 포스트에서는 큐(Queue)에 대해 이야기해보려 합니다.
큐는 데이터를 순서대로 처리하는 효율적인 자료구조 중 하나입니다!
본격적으로 큐에 대해 알아보도록 하죠~
큐(Queue)란 무엇인가
큐는 FIFO(First In, First Out) 방식으로 작동하는 자료구조입니다.
즉, 먼저 들어온 데이터가 먼저 나가는 구조라는 것이죠!
큐의 기본 동작
1. 행동
- Enqueue: 큐의 뒤쪽(꼬리 부분)에 새로운 데이터 추가
- Dequeue: 큐의 앞쪽(머리 부분)에서 데이터 꺼내기
2. 현재 상태 확인
- Peek: 큐의 앞쪽에 있는 데이터를 제거하지 않고 확인
- 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 |