정의

(출처: Queue Data Structure)
데이터를 입력할 수 있는 입구와 데이터를 출력할 수 있는 출구가 있으며, 먼저 입력한 데이터가 먼저 출력되는 구조(FIFO; First In First Out)로 작동하는 선형 데이터 구조
특징
선입선출(FIFO: First In First Out)
- 먼저 들어간 데이터가 제일 처음에 출력됨
- 데이터가 입력된 순서대로 처리할 때 주로 사용
예1) 1, 2, 3, 4를 큐에 차례대로 넣습니다.
queue.enqueue(데이터)
출력 방향 <---------------------------< 입력 방향
1 <- 2 <- 3 <- 4
<---------------------------<
들어간 순서대로, 1번이 제일 먼저 들어가고 4번이 마지막으로 들어가게 됩니다.
예2) 큐가 빌 때까지 데이터를 전부 빼냅니다.
queue.dequeue(데이터)
출력 방향 <---------------------------< 입력 방향
<---------------------------<
1, 2, 3, 4
제일 첫 번째 있는 데이터부터 차례대로 나오게 됩니다.
데이터는 하나씩 입력하고 출력할 수 있음
- 한꺼번에 여러 개의 데이터를 입력하거나 출력할 수 없음
두 개의 입출력 방향
- 데이터의 입력, 출력 방향이 다름
- 입력과 출력의 방향은 고정이 되어 있으며 입력과 출력 두 곳에서 접근이 가능한 구조
예시
버퍼(Buffer)
- 컴퓨터 장치들 사이에서 데이터(data)를 주고받을 때, 각 장치 사이에 존재하는 속도의 차이나 시간 차이를 극복하기 위한 임시 기억 장치의 자료구조
프린터
- 일반적으로 프린터는 속도가 느린 반면, CPU는 프린터와 비교하여, 데이터를 처리하는 속도가 빠름
- 따라서, CPU는 빠른 속도로 인쇄에 필요한 데이터(data)를 만든 다음, 인쇄 작업 Queue에 저장하고 다른 작업을 수행
- 프린터는 인쇄 작업 Queue에서 데이터(data)를 받아 일정한 속도로 인쇄
- 컴퓨터(출력 버튼) → (임시 기억 장치의) Queue에 하나씩 들어옴 → Queue에 들어온 문서를 순서대로 인쇄