본문 바로가기
카테고리 없음

큐(Queue)와 데크(Deque)에 대해서

by sftt 2023. 12. 28.

큐(Queue)

큐는 데이터를 일정한 순서로 저장하는 자료구조입니다. 자주 사용되는 큐의 종류에는 일반적인 큐(Queue)와 우선순위 큐(Priority Queue)가 있습니다.

일반적인 큐 (Queue)

  • 데이터가 먼저 들어온 순서대로 처리되는 선입선출(FIFO, First-In-First-Out) 방식을 따릅니다.
  • 자연스러운 순서를 유지하기 위해 Enqueue(데이터 삽입) 연산과 Dequeue(데이터 삭제) 연산을 사용합니다.
  • 일반적인 큐는 단순히 데이터를 저장하는 역할로 많이 사용됩니다.
  • 예: 대기열, 작업 처리 등

우선순위 큐 (Priority Queue)

  • 각각의 데이터에 우선순위를 부여하는 큐입니다.
  • 우선순위에 따라 데이터가 처리되며, 우선순위가 높은 데이터가 먼저 처리됩니다.
  • 일반적인 큐와 달리, 데이터가 삽입될 때마다 우선순위를 비교하고 맞는 위치에 삽입됩니다.
  • 예: 작업 스케줄링, 네트워크 트래픽 제어 등

데크(Deque)

데크는 양쪽 끝에서 삽입과 삭제가 가능한 자료구조입니다. "Double Ended Queue"의 약자인 데크는 큐와 스택의 특성을 결합한 자료구조로, 필요에 따라 데이터를 양방향으로 삽입하고 삭제할 수 있습니다.

특징

  • 선형 자료구조로, 데이터가 선형으로 저장되어 있습니다.
  • 양 끝에서 삽입과 삭제가 가능합니다.
  • 양쪽 방향으로 삽입/삭제 연산을 제공하므로, 큐(Queue)와 스택(Stack)의 모든 연산을 수행할 수 있습니다.
  • 데이터 사용이 자유로우며, 다양한 용도로 활용할 수 있습니다.

주요 연산

  • push_front(앞에 데이터 삽입)
  • push_back(뒤에 데이터 삽입)
  • pop_front(앞 데이터 삭제)
  • pop_back(뒤 데이터 삭제)
  • front(앞 데이터 확인)
  • back(뒤 데이터 확인)
  • empty(데크가 비어있는지 확인)

데크는 큐와 스택을 동시에 사용해야 할 때, 빠른 삽입과 삭제가 필요한 경우 등에 유용하게 사용됩니다.

댓글