자료구조#2 큐 (Queue)

정은경·2020년 3월 8일
0

1. Queue 구조

2. 알아둘 용어

3. 파이썬 queue 라이브러리

  • 파이썬 Queue 라이브러리: Queue(), LifoQueue(), PriorityQueue() 제공
  • 프로그램을 작성할 때 프로그램에 따라 적합한 자료 구조를 사용
    * Queue() : 가장 일반적인 큐 자료 구조
    • LifoQueue() : 나중에 입력된 데이터가 먼저 출력된느 구조 (=스택구조)
    • PriorityQueue() : 데이터마다 우선순위를 넣어서, 우선순위가 높은 순으로 데이터 출력
    • 일반적인 큐 외에 다양한 정책이 적용된 큐들이 있음

3-1. Queue() : FIFO

import queue

data_queue = queue.Queue()

data_queue.put(1)
data_queue.put(2)
data_queue.qsize()
data_queue.get()

3-2. LifoQueue() : LIFO

import queue

data_queue = queue.LifoQueue()

data_queue.put(1)
data_queue.put(2)
data_queue.qsize()
data_queue.get()

3-3. PriorityQueue()

import queue

data_queue = queue.PriorityQueue()

# (우선순위 값, 데이터)
# 우선순위 숫자가 작을 수록 우선순위가 큼!
data_queue.put(10, '1')
data_queue.put(20, '2')
data_queue.qsize()
data_queue.get()

4. 어디에 queue가 많이 쓰일까?

  • 멀티 태스킹을 위한 프로세스 스케줄링 방식을 구현하기 위해 많이 사용됨 (운영체제 참조)
  • 큐의 경우, 장/단점 보단는 (특별히 언급된느 장단점이 없음), 큐의 활용 예로 프로세스 스케줄링 방식을 함께 이해해두는 것이 좋음

참고자료

profile
#의식의흐름 #순간순간 #생각의스냅샷

0개의 댓글