본문 바로가기
알고리즘/알고리즘,자료구조

알고리즘/자료구조 - 큐 Queue

by 디반 2021. 10. 19. 23:08
반응형

큐 

먼저 넣은 데이터를 먼저 가져올 수 있는 구조

FIFO(First-In First-Out), LILO(Last-In Last-out)방식으로 스택과는 정반대의 순서를 가지고 있다.

Enqueue = 큐에 데이터를 집어 넣는다.

Dequeue = 큐에서 데이터를 꺼낸다.

 

파이썬에서의 큐

파이썬은 queue라이브러리가 존재해 다양한 큐 구조를 제공한다. 

Queue() : 일반적인 큐 구조

LifoQueue : 나중에 입력된 데이터가 먼저 출력되는 구조 (스택 구조)

PriorityQueue() : 데이터마다 우선순위를 부여해 우선순위가 높은 순으로 출력함

 

큐는 이렇게 작동해요

1. 일반 queue

import queue

nomal = queue.Queue()

nomal.put("123")

print(nomal.qsize())
print(nomal.get())
print(nomal.get())


# 2
# 123
# 456

2. LIFO queue

lifo = queue.LifoQueue() # last in first out

lifo.put("디반블로그")
lifo.put(123)

print(lifo.qsize())
# 2
print(lifo.get())
print(lifo.get())
# 123
# 디반블로그

 

3. Priority queue

pri = queue.PriorityQueue()

pri.put((1,"녕"))
pri.put((2,"하"))
pri.put((5,"요"))
pri.put((0.1,"안"))
pri.put((3,"세"))

a = pri.get()

for i in range(a):
    print(pri.get())
    
# (0.1, '안')
# (1, '녕')
# (2, '하')
# (3, '세')
# (5, '요')

 

반응형

댓글


"); wcs_do();