- 본 게시글은 패스트 캠퍼스의 알고리즘 / 기술면접 완전 정복 올인원 패키지를 공부한 내용을 바탕으로 작성되었습니다.
큐는 배열과 함께 쉬운 자료구조 중 하나입니다. 운영체제나 네트워크에서 많이 사용이 됩니다.
큐 구조
- 가장 먼저 넣은 데이터를 가장 먼저 꺼내는 구조입니다. 간단하게 생각하면 음식점에서 가장 먼저 줄을 선 사람이 제일 먼저 음식점에 입장하는 것과 비슷한 구조입니다.
- 이러한 정책을 FIFO(First-In, First-Out)이라고 합니다. (이와 반대인 LIFO도 있습니다.)
- 큐에서 출력된 데이터는 사라지고 나머지 데이터는 줄을 당겨서 앉습니다.
- Enqueue: 큐에 데이터를 넣는 기능
- Dequeue: 큐에서 데이터를 뽑는 기능
이제 FIFO를 사용하는 큐를 만들고 데이터를 넣어보겠습니다.
# 일반적인 큐
import queue
data1 = queue.Queue()# FIFO정책 큐가 만들어집니다.
data1.put("d")# string data를 넣고
data1.put(1)# int data를 넣습니다.
data1.qsize()#데이터 사이즈 확인 2개 넣었으니 2개
# Output: 2
현재 큐 사이즈가 2인 상태인데 이 상태에서 데이터를 한번 꺼내보겠습니다.
data1.get()#데이터를 꺼냄
# Output: 'd'
data1.qsize()
# Output: 1
먼저 들어간 데이터인 'd'가 나오는 것과 큐 사이즈가 줄어든 것을 알 수 있습니다. LIFO 정책 같은 경우는 마지막에 넣은 것이 가장 먼저 추출이 됩니다.
import queue
data2 = queue.LifoQueue()
data2.put(1)
data2.put(3)
data2.qsize()
# Output: 2
data2.get()
# Output: 3
'알고리즘' 카테고리의 다른 글
1. 자료구조 - 배열(Array) (0) | 2022.01.09 |
---|