[c언어] 큐

큐는 선입선출(FIFO, First-In-First-Out) 데이터 구조를 갖는 자료구조입니다. 이는 데이터가 들어온 순서대로 처리되는 성질을 갖고 있습니다.

큐의 특징

  1. 선입선출(FIFO): 큐에 삽입된 순서대로 데이터가 제거됩니다.
  2. 머리(Front)와 꼬리(Rear): 큐의 데이터는 머리에서 빠져나가고 꼬리에서 들어옵니다.
  3. 삽입(Enqueue)과 제거(Dequeue): 큐에 데이터를 추가할 때는 삽입 연산을 사용하고, 데이터를 제거할 때는 제거 연산을 사용합니다.

큐의 구현

큐는 배열이나 연결 리스트를 사용하여 구현할 수 있습니다. 예를 들어, 배열을 사용한 큐 구현은 다음과 같을 수 있습니다.

#include <stdio.h>
#define MAX_SIZE 100

int queue[MAX_SIZE];
int front = 0, rear = -1;

void enqueue(int data) {
    if (rear == MAX_SIZE - 1) {
        printf("Queue is full\n");
        return;
    }
    queue[++rear] = data;
}

int dequeue() {
    if (front > rear) {
        printf("Queue is empty\n");
        return -1;
    }
    return queue[front++];
}

큐의 활용

큐는 대기열(대기줄), 너비 우선 탐색 등 다양한 상황에서 유용하게 활용될 수 있습니다.

이러한 큐의 특성을 이용하여 데이터를 순차적으로 처리하는 프로그램을 개발할 때 유용하게 활용될 수 있습니다.


참고 문헌: