1. 큐(Queue)란
- Queue : 줄 서서 기다리다, 대기 행렬
- FIFO(First In First Out) 혹은 LILO(Last In Last Out)
- 입출력 방향 고정, 두 곳으로 접근 가능
- Queue에 데이터를 넣는 것을 'enqueue'
- Queue에서 데이터를 꺼내는 것을 'dequeue’
2. Queue의 특징
- FIFO(First In First Out)
- 먼저 들어간 데이터가 가장 먼저 나오는 선입선출 구조
- 예 : 톨게이트에 진입 했을 때, 먼저 온 차가 통행료를 내고 먼저 나간다.
- 데이터는 하나씩 넣고 뺄 수 있음
- Queue의 데이터는 아무리 많아도 하나씩 데이터를 넣고 뺌.
- 한꺼번에 여러 개를 넣거나 뺄 수 없음
- 두 개의 입출력 방향을 가지고 있음
- Queue는 데이터 입출력 방향이 다름
- 만일 입출력 방향이 같다면 Queue이라고 볼 수 없음
3. Queue의 실사용 예제
- 예 : 컴퓨터와 연결된 프린터에서 문서 순서대로 인쇄하기
1️⃣ 문서를 작성하고 출력 버튼을 누르면 해당 문서는 인쇄 작업(임시 기억 장치의) Queue에 들어감
2️⃣ 프린터는 인쇄 작업 Queue에 들어온 문서를 순서대로 인쇄
➡️ 즉, 컴퓨터(출력 버튼) - (임시 기억 장치의) Queue에 하나씩 들어옴 - Queue에 들어온 문서를 순서대로 인쇄
- 위의 예시처럼 컴퓨터 장치들 사이에서 데이터를 주고 받을 때, 각 장치에 존재하는 속도 차이나 시간 차이를 극복하기 위해 임시 기억장치의 자료구조로 Queue를 사용 ➡️ 이것을 통틀어 Buffer
4. Queue의 메서드
add() : 스택에 추가
poll() : 가장 앞에 있는 데이터를 추출 (제거 O)
peek() : 가장 앞에 있는 데이터를 추출 (제거 X)
isEmpty() : 스택이 비어있는지 확인
clear() : 스택의 데이터를 다 지움
'알고리즘 > 자료구조' 카테고리의 다른 글
[자료구조] Graph (0) | 2022.07.27 |
---|---|
[자료구조] Tree (0) | 2022.07.27 |
[자료구조] Stack (0) | 2022.07.27 |
[자료구조] 재귀 함수(Recursive Function) (0) | 2022.07.27 |
댓글