일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- programmers
- 백준
- 입이 트이는 영어
- 11727번
- SecurityFilterChain
- 1057번
- github
- 권주현의 진짜 영국 영어
- 2163번
- 영어
- python
- WebSecurityConfigurerAdapter
- BinaryGap
- Java
- codility
- Spring Security
- 알고리즘
- 2630번
- 파이썬
- 신규아이디추천
- 9251번
- 프로그래머스
- 분할정복
- EBS어학당
- 1793번
- 18406번
- 11047번
- caniuse
- 1992번
- 1759번
Archives
- Today
- Total
철갑이의 이모저모
[자료구조] Queue(큐) 본문
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