철갑이의 이모저모

[자료구조] Queue(큐) 본문

자료구조

[자료구조] Queue(큐)

철갑 2020. 10. 13. 21:40
728x90

Queue(큐)


큐(Queue)는 뒤(rear)에서 데이터를 넣고(enqueue), 앞(front)에서 데이터를 꺼내는(dequeue)는 선형 자료구조 이다.

FIFO(First-In, First-Out) 또는 LILO(Last-In, Last-Out) 방식으로 스택과는 반대되는 개념.

줄을 서는 행위를 생각하면 이해가 쉽다.

프린터의 출력, 운영체제의 프로세스 관리에서 데이터나 작업이 입력된 순서대로 처리해야할 때 응용되는 구조이다. (멀티태스킹을 위한 프로세스 스케쥴링 방식)

<큐의 구조>

 

Python 에서의 Queue 라이브러리


# Queue() 일반적인 큐(FIFO)

import queue

q = queue.Queue()

# 큐에 데이터를 넣을때 put 사용
q.put("first")
q.put("second")
q.put("third")

print(q.qsize()) # 3 출력

# 큐에서 데이터를 꺼낼 때 get 사용
a = q.get()
b = q.get()
c = q.get()

print(a) # first 출력
print(b) # second 출력
print(c) # third 출력
# LifoQueue() 변형큐(LIFO)

import queue

q = queue.LifoQueue()

q.put("first")
q.put("second")
q.put("third")

print(q.qsize())

a = q.get()
b = q.get()
c = q.get()

print(a) # third 출력
print(b) # second 출력
print(c) # first 출력
# PriorityQueue() 우선순위 큐

import queue

q = queue.PriorityQueue()

q.put((1, "first"))
q.put((10, "second"))
q.put((2, "third"))

print(q.qsize())

a = q.get()
b = q.get()
c = q.get()

print(a)
print(b)
print(c)

'''
(1, 'first')
(2, 'third')
(10, 'second')
'''

 

728x90

'자료구조' 카테고리의 다른 글

CS 공부자료  (0) 2021.08.29