
선입선출 FIFO(First-in, Fisrt-out)의 자료구조이다. 시간복잡도는 enqueue(넣기) O(1), dequeue(빼기) O(1)이다.
활용 예시로근 Cache 구현, 프로세스 관리, 너비우선탐색(BFS)등이 있다.
FIFO : Queue는 시간 순서상 먼저 집어 넣은 데이터가 먼저 나오는 선입선출 FIFO 형식으로 데이터를 저장하는 자료구조
Enqueue : 큐에서 데이터를 추가하는 것, 데이터를 큐의 맨 뒤에 추가하면 완료되기 때문에 시간복잡도는 O(1)
Dequeue : 큐에서 데이터를 추출하는 것, 데이터를 큐의 맨 앞에서 추출하면 완료되기 때문에 시간복잡도는 O(1)

Array-Based Queue : Array-list를 기반으로 만들어짐. enqueue와 dequeue 과정에서 남는 메모리가 생긴다. 따라서 메모리의 낭비를 줄이기 위해 주로 Circular queue형식으로 구현을 한다.
List-Based Queue : Linked-list를 기반으로 만들어짐. 재할당이나 메모리의 낭비의 걱정을 할 필요가 없어진다.
: Array-based의 경우 circular queue로 구현하는 것이 일반적
: List-based의 경우 singly-linked list로 구현하는 것이 일반적
: 결론

Array-Based Queue는 enqueue와 dequeue를 하면 들어오고 나오는 과정에서 메모리에 빈 공간이 발생함.
빈 공간에 원형처럼 순환하여 enqueue를 진행
deque(double-ended queue) : 양쪽으로 enqueue와 dequeue가 가능한 자료구조
priority queue : 시간순서가 아닌 우선순위가 높은 순서로 dequeue를 할 수 있는 자료구조
활용 예시 : 하나의 자원을 공유하는 프린터, CPU task Scheduling, Cache 구현 등등
이런 유용한 정보를 나눠주셔서 감사합니다.