자료구조 : 큐(Queue)

ROK·2022년 10월 21일
0

열혈 자료구조

목록 보기
17/30

큐(Queue)

큐는 아주 간단하다. 매우 익숙한 자료구조이다. 우리가 일반적으로 줄을 스는걸 생각하면 아주 편하다.
예를 들어 음식점을 갈때도 줄을 서고, 공연장에 입장할 때도 줄을 선다.
이러한 선입선출 구조의 자료구조가 이다. 영어로는 FIFO(First-In, First-Out)이라고 한다.

큐의 ADT 정의

큐도 스택과 마찬가지로 ADT가 정형화 되어있는 편이다.
큐의 핵심이 되는 두 가지 연산

  • enqueue : 큐에 데이터를 넣는 연산
  • dequeue : 큐에서 데이터를 꺼내는 연산

스택에서 데이터를 넣고 빼는 연산을 push, pop이라고 했었던 것처럼, 큐에서는 데이터를 넣고 빼는 연산을 enqueue, dequeue라고 한다.

큐 자료구조의 ADT

  • void QueueInit(Queue * pq);

    • 큐의 초기화를 진행
    • 큐 생성 후 제일 먼저 호출해야 하는 함수
  • int QIsEmpty(Queue * pq);

    • 큐가 빈 경우 TRUE(1)를 아니면 FALSE(0)을 반환
  • void Enqueue(Queue * pq, Data data);

    • 큐에 데이터를 저장한다. 매개변수 data로 전달된 값을 저장
  • Data Dequeue(Queue * pq);

    • 저장순서가 가장 앞선 데이터를 삭제
    • 삭제된 데이터를 반환
    • 본 함수의 호출을 위해서 데이터가 하나 이상 존재해야 한다.
  • Data QPeek(Queue * pq);

    • 저장순서가 가장 앞선 데이터를 반환하되 삭제하지 않음
    • 본 함수의 호출을 위해서 데이터가 하나 이상 존재함이 보장되어야 한다.
profile
하루에 집중하자

0개의 댓글