1. Queue?
- 큐(Queue)는 선입선출(FIFO, First In First Out) 원칙을 따르는 선형 자료구조이다.
- 먼저 들어온 데이터가 먼저 나가는 방식으로 작동된다.
- 큐는 한 쪽 끝에서 데이털르 추가하고, 반대쪽 끝에선 데이터를 제거하는 특징이 있다.
- 흔히 줄 서기나, 은행 창구에서의 대기열로 예를 들 수 있다.

2. 큐의 구조
- Front(앞쪽) : 데이터를 꺼내는 쪽이다. 가장 먼저 들어온 요소가 위치한 곳
- Rear(뒤쪽) : 데이터를 추가하는 쪽이다. 큐의 마지막 요소가 위치한 곳
3. 큐의 메소드
3.1. enqueue(데이터 추가):
- 데이터를 큐의 끝(Rear)에 추가하는 연산
3.2. dequeue(데이터 제거):
- 큐의 앞(Front)에 있는 데이터를 제거하고 반환하는 연산
3.3. is_empty(비어 있는지 확인):
- 큐가 비어 있는지 확인하는 연산, 비어있으면 True를 반환
3.4. peek(front 데이터 확인):
- 큐의 맨 앞(front)에 있는 데이터를 확인하지만, 제거하지 않고 그대로 둔다.
3.5. size(큐의 크기 확인):
- 현재 큐에 있는 요소의 개수를 반환
4. 큐(queue)구현
from collections import deque
class Queue:
def __init__(self):
self.queue = deque()
def enqueue(self,data):
self.queue.append(data)
def dequeue(self):
if not self.is_empty():
return self.queue.popleft()
else:
raise Exception("Queue is empty")
def peek(self):
if not self.is_empty():
return self.queue[0]
else:
raise Exception("Queue is empty")
def is_empty(self):
return len(self.queue)==0
def size(self):
return len(self.queue)
queue = Queue()
queue.enqueue(10)
queue.enqueue(20)
queue.enqueue(30)
print("Front item:", queue.peek()) # 10
print("Dequeue item:", queue.dequeue()) # 10
print("Is queue empty?", queue.is_empty()) # False
print("Queue size:", queue.size()) # 2
print("Dequeue item:", queue.dequeue()) # 20
print("Dequeue item:", queue.dequeue()) # 30
print("Is queue empty?", queue.is_empty()) # True'CS Study > CLRS (자료구조 | 알고리즘)' 카테고리의 다른 글
| [CLRS] [11-2,11-3] Hash Tables / Hash Function (0) | 2024.11.20 |
|---|---|
| [CLRS] [11-1] Direct-address tables (0) | 2024.11.20 |
| [CLRS] [10-2] Stack(스택) (1) | 2024.11.04 |
| [CLRS] [10-1] Linked List(연결리스트) (0) | 2024.11.04 |
| [CLRS] [9-1] Minimum and maximum(최솟값과 최댓값) (1) | 2024.11.04 |