1. Queue

  1. [설명]
    1. 한쪽 끝에서만 삽입이 이뤄지고, 다른 한쪽 끝에서는 삭제연산만 이뤄지는 유한 순서 리스트를 말합니다
  2. [특징]
    1. FIFO(First in First Out) 즉, 선입선출이라 생각하면 쉽습니다
    2. 먼저들어온 것은 먼저 나가는 형식을 말합니다
  3. [예시]
    1. 영화티켓을 예매를 위해 줄을 서서 기다리는 사람들
    2. 주차를 하기 위해서 차들은 한줄로 나란히 가야만하는 경우
    3. 컴퓨터 운영체제의 테스크 스케줄링을 말함
      1. CPU ⇒ System Processes
      2. CPU ⇒ Interactive Processes
      3. CPU ⇒ Batch Processes
  4. [기능]
    1. enQueue
      1. Data를 넣는 것을 말합니다
    2. deQueue
      1. Data를 빼내는 것을 말합니다
    3. isEmpty
      1. 비어있는지를 확인합니다
    4. isFull
      1. 꽉 차 있는지를 확인합니다
    5. peek
      1. 앞에있는 원소를 삭제하지 않고 반환합니다
  5. [문제점]
    1. 구현하고 사용할때 Data를 빼내는 deQueue()를 사용하게되면 맨 앞에있던 값이 빠져나가게 되는데 이때 front가 한칸씩 뒤로 밀려나게 되면서 가용범위가 줄어들면서, 재사용 또한 불가능하게 되는 것을 말합니다
    2. 재사용을 하기위해서 front를 출력하고 front뒤의 index를 하나씩 앞당긴다해도 불필요한 연산이 너무 많아지는 것도 문제입니다
  6. [원형 Queue]
    1. 문제점을 보완하기 위해서 생겨났습니다
  7. [우선순위 Queue - Priority Queue]
    1. 우선순위를 이용하여 우선순위가 높은 순서대로 나가는 것을 말합니다
    2. [예시]
      1. 병원에서 기존 환자들을 진료보다가 응급환자가 들어오게되면 먼저 진료하게되는 것을 말합니다