본문 바로가기
프로그래밍 이야기/GameDev

[자료구조] - 큐 (Queue)

by Mulder5 2021. 8. 12.
반응형

대표적인 데이터 구조이며 가장 먼저 넣은 데이터를 가장 먼저 꺼낼 수 있다. (FIFO - First In First Out)

물론 LILO(Last In Last out) 형식의 Queue도 만들 수 있다. 다만 기본 형태는 FIFO이며, Python 라이브러리에서는 FIFO외에 LifoQueue(Last in first out), PriorityQueue 를 지원한다. 

일반적인 Queue의 사용

import queue
data_queue = queue.Queue()

for index in range(10):
    data_queue.put(index)

data_queue.qsize()	// 10

data_queue.get()	// 0
data_queue.get()	// 1	
data_queue.get()	// 2
data_queue.get()	// 3
data_queue.get()	// 4

 


LifoQueue의 사용

import queue

data_queueLifo = queue.LifoQueue()

for index in range(10):
    data_queueLifo.put(index)
    
data_queueLifo.qsize()	// 10

data_queueLifo.get()	// 9
data_queueLifo.get()	// 8
data_queueLifo.get()	// 7
data_queueLifo.get()	// 6

PriorityQueue의  사용

import queue
data_PriorityQueue = queue.PriorityQueue()

data_PriorityQueue.put((1, "Korea"))
data_PriorityQueue.put((2, "JAPAN"))
data_PriorityQueue.put((3, "CHINA"))
data_PriorityQueue.put((4, "TAIWAN"))

data_PriorityQueue.qsize()

data_PriorityQueue.get()	// (1, 'Korea')
data_PriorityQueue.get()	// (2, 'JAPAN')
data_PriorityQueue.get()	// (3, 'CHINA')
data_PriorityQueue.get()	// (4, 'TAIWAN')

 

참고 
https://docs.python.org/3/library/queue.html

반응형