반응형
큐
먼저 넣은 데이터를 먼저 가져올 수 있는 구조
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, '요')
반응형
'알고리즘 > 알고리즘,자료구조' 카테고리의 다른 글
파이썬을 활용해보자 [알고리즘 풀이 꿀팁] 1편 (0) | 2021.10.30 |
---|---|
알고리즘/자료구조 - Hash Table(해쉬 테이블) (0) | 2021.10.24 |
알고리즘/자료구조 - Quick Sort(퀵 정렬) (0) | 2021.10.22 |
알고리즘/자료구조 - Stack(스택) (0) | 2021.10.21 |
알고리즘/자료구조 - Array(배열) 알아보기 (0) | 2021.10.18 |
댓글