FIFO(First In First Out, 선입선출) 방식의 자료구조
가장 먼저 넣은 데이터를 가장 먼저 꺼낸다.
큐에 데이터를 넣는 것을 Enqueue라고 하고,
큐에서 데이터를 꺼내는 것을 Dequeue라고 한다.
queue_list = list()
# Enqueue와 Dequeue 구현
def enqueue(data):
queue_list.append(data)
def dequeue():
data = queue_list[0]
del queue_list[0]
return data
Python에서는 Queue 라이브러리를 활용해 다양한 큐 자료구조를 사용할 수 있다.
- Queue(): 일반적인 큐 자료구조
import queue
data = queue.Queue()
# 데이터 넣기
data.put(1)
data.put("second")
data.qsize()
>> 2
# 먼저 넣은 데이터가 먼저 출력
data.get()
>> 1
data.get()
>> 'second'
- LifoQueue(): LIFO(Last In First Out), 나중에 입력된 데이터를 먼저 꺼내는 방식(스택과 같음)
- PriorityQueue(): 데이터에 우선순위를 부여해, 우선순위가 높은 것부터 출력되는 방식
큐는 멀티 태스킹을 위한 프로세스 스케줄링 방식 구현 시 많이 사용된다.
'프로그래밍 > 자료구조와 알고리즘' 카테고리의 다른 글
[자료구조] 트리(Tree) (0) | 2021.03.05 |
---|---|
[자료구조] 해시 테이블(Hash Table) (0) | 2021.03.04 |
[자료구조] 연결 리스트(Linked List) (0) | 2021.03.04 |
[자료구조] 스택(Stack) (0) | 2021.03.04 |
[자료구조] 배열(Array) (0) | 2021.03.03 |
댓글