<TIL 230131 자료구조> 큐(QUEUE)

Hisu(히수)·2023년 2월 1일
0

TIL

목록 보기
8/9

📕큐(QUEUE)


🤔큐가 뭔데?

QUEUE : 대기줄, 줄을 짓다.

큐는 선입선출 방식(FIFO: First In First Out)의 자료구조를 뜻한다.
말 그대로 먼저 들어온 데이터를 먼저 연산해주는 구조라고 보면 된다.
(먼저 온 순서대로! 차례대로!)

큐에 끝(Rear)에서 데이터를 추가하는 작업을 enqueue라고 하며 큐의 맨 앞(Front)에서 데이터를 연산하고 제거하는 작업을 dequeue라고 한다.


👍큐의 장점!

  1. 데이터의 접근, 삽입, 제거에 용이하다.
  2. 입력 데이터들의 순서를 정하는데 최적화 되어있다.
  • 기본적으로는 FIFO를 지원하지만 특정한 상태에 따라 우선순위를 결정하기도 한다.

👎큐의 단점!

  1. 중간 데이터에 접근이 불가능하다.
  • front 데이터와 rear의 데이터는 접근이 가능하지만, 중간에 있는 데이터에 접근은 불가능하다.
  1. 배열로 큐를 구현했을 때 크기가 제한적이고, 빈공간이 생기면 모든 자료를 한칸씩 이동시키거나, 빈공간을 활용하지 못하는 단점이 생긴다.

📃큐의 추상자료형

NAMERULE
Enqueue맨 뒤에 데이터 삽입
Dequeue맨 앞에 데이터 삭제
PeeK데이터 참조
Front맨 앞에 데이터 출력
Rear맨 뒤에 데이터 출력
isEmpty큐가 비어있는지 확인

🤔 큐는 어디에 쓸까?

대표적으로 큐는 브라우저 환경에서 OS의 스케쥴러에 쓰인다.
어떠한 작업/데이터를 순서대로 실행/사용하기 위해 대기시킬 때 사용한다.
또한 요즘에 식당의 줄이 많을 경우 모바일 줄서기 등도 큐의 방식에 해당된다.
(맛집은 특히 테블릿을 이용하여 줄서기를 하는 경우가 있다.)


마치며..

큐와 스택을 비교하며 이해하니까 조금 더 수월하게 이해할 수 있었다.
큐를 공부하게 되고나서 자꾸 일상생활에서 큐의 방식이 보이는 경우가 있어서
웃음이 나었다. (맛집 줄서기... 프링글스...)

0개의 댓글