큐(Queue) : 가장 먼저 넣은 데이터가 가장 먼저 나오는 구조
FIFO : First in First out
대게 Buffer에 많이 사용됩니다.
Python의 장점 중 하나는 자료구조를 힘들게 구현할 필요가 없다는 점입니다.
Class형으로 Queue를 표현할 수 있지만, 저는 최대한 단순하게 가는 코딩을 좋아하기 때문에 list를 이용해서
큐 구조를 사용해보겠습니다..
우선, 재귀함수를 이용해서 FIFO 구조를 구현하겠습니다.
def stack(start, end):
if start <= end:
print('Put :', start)
stack(start + 1, end)
print("Get :", end-start)
else:
print("--------")
stack(start=0, end=5)
#결과
Put : 0
Put : 1
Put : 2
Put : 3
Put : 4
Put : 5
--------
Get : 0
Get : 1
Get : 2
Get : 3
Get : 4
Get : 5
https://coding-yoon.tistory.com/43?category=830017
위 링크를 타 보시면 stack구조와 다른 내용은 거의 없습니다.
0, 1, 2, 3, 4, 5 순으로 들어갔다면 0, 1, 2, 3, 4, 5으로 다시 나오는 구조입니다.
import queue
queue_list = queue.Queue()
for i in range(10):
queue_list.put(i)
print("Put :", i)
print("------------------")
for i in range(10):
print("Get :", queue_list.get())
# 결과
Put : 0
Put : 1
Put : 2
Put : 3
Put : 4
Put : 5
Put : 6
Put : 7
Put : 8
Put : 9
------------------
Get : 0
Get : 1
Get : 2
Get : 3
Get : 4
Get : 5
Get : 6
Get : 7
Get : 8
Get : 9
import queue를 사용하시면 간단하게 FIFO구조를 구현하실 수 있습니다.
728x90
반응형
'Python > Basic' 카테고리의 다른 글
[Python] 파이썬이 최고의 언어가 아닌 이유 10가지 (1) | 2022.07.28 |
---|---|
[파이썬] 파이썬으로 알아보는 CSV형식의 파일구조 (0) | 2020.05.31 |
[파이썬 기본] Low Pass Filter(저역통과필터), High Pass Filter(고역통과필터), Band Pass Filter(대역통과필터) 모듈화 & 라이브러리화시키기 (4) | 2020.04.21 |
[파이썬] 자료구조 : python(List) 메모리 구조에 대해 파헤치기 (0) | 2020.04.04 |
[파이썬] 자료구조 : 재귀함수 & 스택구조 & LIFO구조 (0) | 2020.03.21 |