본문 바로가기
IT개발/자료구조를 알아보자!

자료구조 : 큐 (Queue)

by 코난_ 2021. 7. 23.
728x90
큐 구조

- 식당이나 공연장 등에서 줄을 서는 것과 유사함

- 제일 처음 넣은 데이터를 가장 먼저 꺼낼 수 있음

이미지 출처: http://www.stoimen.com/blog/2012/06/05/computer-algorithms-stack-and-queue-data-structure/

 

필수 용어

- Enqueue : 큐에 데이터를 넣음

- Dequeue : 큐에서 데이터를 꺼냄

 

FIFO(First-In, First-Out) 방식 : 먼저 들어간 데이터가 가장 먼저 나오는 일반적인 큐
import queue
data_queue = queue.Queue()

data_queue.put("today") #원하는 문자 데이터 넣기
data_queue.put(1) #원하는 숫자 넣기

data_queue.qsize() #today, 1 두 개의 데이터가 있으니 2출력

data_queue.get() #먼저들어간 데이터 today가 출력

data_queue.qsize() #today 데이터가 빠져나왔기 때문에 1출력

data_queue.get() #남은 데이터인 숫자1 출력

 

LIFO(Last-In, First-Out) 방식 : 나중에 입력된 데이터가 먼저 출력됨
import queue
data_queue = queue.LifoQueue()

data_queue.put("today")
data_queue.put(1)

data_queue.qsize() #2

data_queue.get() #숫자 1을 마지막에 넣었기 때문에 숫자1이 출력

 

큐가 많이 쓰이는 곳은?

- 멀티 태스킹을 위한 프로세스 스케줄링 방식을 구현하기 위해 많이 사용됨