언어는 python을 사용하였습니다.
2. 큐(Queue)
- 가장 먼저 넣은 데이터를 가장 먼저 꺼내는 선입선출(FIFO) 구조 입니다.
- FIFO(First-In, First-Out) 또는 LILO(Last-In, Last-Out) 방식으로 스택과 꺼내는 순서가 반대
- 큐의 경우 멀티 태스킹을 위한 프로세스 스케줄링 방식을 구현하기위해 OS에서 많이 사용된다.
삽입, 삭제
- 큐에 데이터를 추가하는 작업 인큐(Enqueue)
- 큐에 데이터를 꺼내는 작업 디큐(dequeue)
- 데이터를 꺼내는 쪽 프런트(front)
- 데이터를 넣는 쪽 리어(rear)
파이썬에서의 큐(Queue)
- 파이썬에서는 queue 라이브러리를 통해 다양한 큐 구조를 제공한다
- 일반적인 Queue, LIFO 구조의 LifoQueue(), 우선순위를 두고 우선순위가 높은 순위로 출력하는 우선순위 큐 PriorityQueue() 등이 있다.
FIFO 구조의 Queue() 만들기
import queue
# 큐 만들기
data_queue = queue.Queue()
# 데이터 넣기
data_queue.put()
# 큐 사이즈 확인
data_queue.qsize()
# 데이터 꺼내기
data_queue.get()
리스트를 통한 큐의 enqueue, dequeue 기능 구현
queue_list = list()
# 데이터 추가
def enqueue(data):
queue_list.append(data)
#데이터 뽑기
def inqueue():
data = queue_list[0] #0번은 항상 제일 첫번째를 의미
del queue_list[0] #첫 번째 데이터를 삭제 시켜주어야 한다
return data
References
Do it! 점프 투 파이썬
Do it! 자료구조와 함께 배우는 알고리즘 입문 파이썬편
잔재미코딩
'자료구조 알고리즘 > 자료구조' 카테고리의 다른 글
자료구조 - 해쉬 테이블(Hash Table) (1) | 2022.10.04 |
---|---|
알고리즘의 복잡도 표현 (0) | 2022.10.03 |
자료구조 - 링크드 리스트(Linked List) (0) | 2022.10.03 |
자료구조 - 스택(stack) (2) | 2022.09.11 |
자료구조 - 배열 (Array) (0) | 2022.09.09 |
댓글