필요한 개념들/자료구조

큐(QUEUE)란?

Snowboarder 2022. 8. 24. 10:50

큐(QUEUE)란?

 

📌 큐의 개념

Queue 의 사전적 의미는 1. (무엇을 기다리는 사람, 자동차 등의)  , 혹은 줄을 서서 기다리는 것을 의미한다.

따라서 일상생활에서 놀이동산에서 줄을 서서 기다리는 것, 은행에서 먼저 온 사람의 업무를 창구에서 처리하는 것과 같이

선입선출(FIFO, First in first out) 방식의 자료구조를 말한다. 

 

📌 큐의 특징

정해진 한 곳(top)을 통해서 삽입, 삭제가 이루어지는 스택과는 달리

큐는 한쪽 끝에서 삽입 작업이, 다른 쪽 끝에서 삭제 작업이 양쪽으로 이루어진다.

이때 삭제연산만 수행되는 곳을 프론트(front), 삽입연산만 이루어지는 곳을 리어(rear)로 정하여

각각의 연산작업만 수행된다. 이때, 큐의 리어에서 이루어지는 삽입연산을 인큐(enQueue)

프론트에서 이루어지는 삭제연산을 디큐(dnQueue)라고 부른다.

 

  • 큐의 가장  원소를 front / 가장 끝 원소를 rear
  • 큐는 들어올  rear로 들어오지만 나올때는 front부터 빠지는 특성
  • 접근방법은 가장 첫 원소와 끝 원소로만 가능
  • 가장 먼저 들어온 프론트 원소가 가장 먼저 삭제

즉, 큐에서 프론트 원소는 가장 먼저 큐에 들어왔던 첫 번째 원소가 되는 것이며,

리어 원소는 가장 늦게 큐에 들어온 마지막 원소가 되는 것이다.

 

📌 큐의 활용 예시

 

큐는 주로 데이터가 입력된 시간 순서대로 처리해야 할 필요가 있는 상황에 이용한다.

  • 우선순위가 같은 작업 예약 (프린터의 인쇄 대기열)
  • 은행 업무
  • 콜센터 고객 대기시간
  • 프로세스 관리
  • 너비 우선 탐색(BFS, Breadth-First Search) 구현
  • 캐시(Cache) 구현

 

'필요한 개념들 > 자료구조' 카테고리의 다른 글

스택  (0) 2022.08.08