본문 바로가기
프로그래밍/자료구조와 알고리즘

[자료구조] 큐(Queue)

by 소꿍 2021. 3. 4.

FIFO(First In First Out, 선입선출) 방식의 자료구조

가장 먼저 넣은 데이터를 가장 먼저 꺼낸다.

 

큐에 데이터를 넣는 것을 Enqueue라고 하고,

큐에서 데이터를 꺼내는 것을 Dequeue라고 한다.

queue_list = list()

# Enqueue와 Dequeue 구현
def enqueue(data):
	queue_list.append(data)
    
def dequeue():
	data = queue_list[0]
    del queue_list[0]
    return data

 

 

Python에서는 Queue 라이브러리를 활용해 다양한 큐 자료구조를 사용할 수 있다.

 

  • Queue(): 일반적인 큐 자료구조
import queue

data = queue.Queue()

# 데이터 넣기
data.put(1)
data.put("second")

data.qsize()
>> 2

# 먼저 넣은 데이터가 먼저 출력
data.get()
>> 1

data.get()
>> 'second'

 

 

  • LifoQueue(): LIFO(Last In First Out), 나중에 입력된 데이터를 먼저 꺼내는 방식(스택과 같음)
  • PriorityQueue(): 데이터에 우선순위를 부여해, 우선순위가 높은 것부터 출력되는 방식

 

큐는 멀티 태스킹을 위한 프로세스 스케줄링 방식 구현 시 많이 사용된다.

댓글