Post

[자료구조] Queue

Queue란?

FIFO (First In First Out), 선입선출의 원칙을 따르는 자료구조이고 아래와 같이 두가지 중요한 작업이 있다.

  • Enqueue : 큐의 끝에 항목 추가
  • Dequeue : 큐의 앞쪽에서 항목 제거 후 반환

즉, 큐에서는 가장 먼저 enqueue된 항목이 가장 먼저 dequeue 된다.

Queue의 종류

  • 선형 큐 (Queue)
  • 원형 큐 (Circular Queue)
  • 우선순위 큐 (Priority Queue)
  • 덱 (Deque; Double Ended Queue)

선형 큐 (Queue)

  • 일반적인 선형 큐로 enqueue 와 dequeue의 기능만을 가지고 있다
  • 시간복잡도 : O(1)

원형 큐 (Circular Queue)

  • 원형으로 이루어진 큐로 첫 요소와 마지막 요소가 연결되어 있다
  • 원형으로 순환하며, 값이 추가되거나 삭제되어도 포인터값이 바뀌기 때문에 작업 수행 가능
  • 시간복잡도 : O(1)

우선순위 큐 (Priority Queue)

  • 선형 큐와 같은 기능을 가지고 있지만 추가적으로 수선순위가 배정되어 있다
  • 일반적으로 Heap으로 구현된다
  • 시간복잡도 : O(log n)

덱 (Deque; Double Ended Queue)

  • 양쪽에서 삽입, 삭제가 가능한 구조
  • 스택과 큐의 연산 모두 지원
  • 시간복잡도 : O(1)
This post is licensed under CC BY 4.0 by the author.