1. Queue의 정의
- Queue는 가장 먼저 진입한 데이터(data)가 가장 먼저 빠져나가는 자료구조이다.
2. Queue의 특징
1) FIFO(First In First Out)
- 먼저 들어간 데이터가 제일 처음에 나오는 선입선출 구조를 가지고 있다.
ex1) 1, 2, 3, 4를 큐에 차례대로 넣는다.
queue.enqueue(데이터)
출력 방향 <---------------------------< 입력 방향
1 <- 2 <- 3 <- 4
<---------------------------<
들어간 순서대로, 1번이 제일 먼저 들어가고 4번이 마지막으로 들어가게 된다.
ex2) 큐가 빌 때까지 데이터를 전부 빼낸다.
queue.dequeue(데이터)
출력 방향 <---------------------------< 입력 방향
<---------------------------<
1, 2, 3, 4
제일 첫 번째 있는 데이터부터 차례대로 나오게 된다.
2) 데이터는 하나씩 넣고 뺄 수 있다.
- Queue 자료구조는 데이터가 아무리 많이 있어도 하나씩 데이터를 넣고 뺀다. 즉, 한꺼번에 여러 개를 넣거나 뺄 수 없다.
3) 두 개의 입출력 방향을 가지고 있다.
- Queue 자료구조는 데이터의 입력, 출력 방향이 다르다. 만약 입출력 방향이 같다면 Queue 자료구조라고 볼 수 없다.
3. Queue의 실사용 예제
- 대표적으로 프린터가 여러 문서를 순서대로 인쇄를 해야 할 때 자료구조 Queue가 사용된다.
- 문서를 작성하고 출력 버튼을 누르면 해당 문서는 인쇄 작업 (임시 기억 장치의) Queue에 들어간다.
- 프린터는 인쇄 작업 Queue에 들어온 순서대로 인쇄한다.
- 컴퓨터 장치 들 사이에서 데이터(data)를 주고받을 때, 각 장치 사이에 존재하는 속도의 차이나 시간 차이를 극복하기 위해 임시 기억 장치의 자료구조로 Queue를 사용한다. 이것을 통틀어 버퍼(buffer)라고 한다.