본문 바로가기
알고리즘/자료구조

[자료구조] Queue

by Bhinney 2022. 7. 27.

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() : 스택의 데이터를 다 지움

 

https://www.programiz.com/java-programming/queue

'알고리즘 > 자료구조' 카테고리의 다른 글

[자료구조] Graph  (0) 2022.07.27
[자료구조] Tree  (0) 2022.07.27
[자료구조] Stack  (0) 2022.07.27
[자료구조] 재귀 함수(Recursive Function)  (0) 2022.07.27

댓글