-
QueueProgramming/Data Structure 2020. 10. 15. 08:25728x90
Python에서 Queue에 대해서 정리
가장 먼저 넣은 것을 가장 먼저 꺼내는 구조
ex) 음식점에서 줄을 서는 행위, 먼저 줄 슨 사람이 먼저 받는다.
FIFO(First In - First Out) // LILO(Last In - Last Out)은 Stack 구조
4,3,2,1,5의 순서대로 Data를 넣고, 차례로 뺄때는
4
3
2
1
5
의 순서로 빠진다.
Data를 빼면 빠진 Data는 Queue에서 삭제된다.
Queue 용어
EnQueue : Queue에 Data를 넣는 기능
DeQueue : Queue에서 Data를 빼는 기능
참고할만한 Site
Queue를 클릭해서 보기
Python에서는 Queue 라이브러리를 지원한다.
Queue(), LifoQueue(), PriorityQueue()를 지원
Queue - 일반적인 구조
LifoQueue - Last In First Out, 마지막에 넣은 값이 가장 먼저 나온다.
PriorityQueue -
예제
1. Queue
import queue data_queue = queue.Queue() data_queue.put(1) #enQueue data_queue.qsize() #Queue Size check data_queue.get() #deQueue data_queue.qsize()
2. LIFO Queue
#LiFO Queue #Last In First Out , 마지막에 넣은 것이 가장 먼저 추출됨 import queue data_queue = queue.LifoQueue() data_queue.put(1) data_queue.put(2) data_queue.get() # 2가 먼저 나온다.
3. Priority Queue
import queue data_queue = queue.PriorityQueue() data_queue.put((10, "USA")) #튜플의 첫번째가 우선순위, 두번째가 값 data_queue.put((5, "CHINA")) data_queue.put((1,"KOREA")) data_queue.qsize() data_queue.get() #KOREA가 출력
Queue는 어디에 많이 사용될까?
멀티태스킹을 위한 프로세스 스케쥴 방식을 구현하기 위해서 많이 사용됨
# list를 가지고 Queue를 구현 queue_list = list() def enqueue(data): queue_list.append(data) def dequeue(): data = queue_list[0] del queue_list[0] return data
'Programming > Data Structure' 카테고리의 다른 글
Tree (1) 2020.11.19 Hash Table (0) 2020.11.10 링크드리스트 (0) 2020.10.29 Stack (0) 2020.10.19 배열(Array) (0) 2020.10.14