[c언어] 큐
큐는 선입선출(FIFO, First-In-First-Out) 데이터 구조를 갖는 자료구조입니다. 이는 데이터가 들어온 순서대로 처리되는 성질을 갖고 있습니다.
큐의 특징
- 선입선출(FIFO): 큐에 삽입된 순서대로 데이터가 제거됩니다.
- 머리(Front)와 꼬리(Rear): 큐의 데이터는 머리에서 빠져나가고 꼬리에서 들어옵니다.
- 삽입(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++];
}
큐의 활용
큐는 대기열(대기줄), 너비 우선 탐색 등 다양한 상황에서 유용하게 활용될 수 있습니다.
이러한 큐의 특성을 이용하여 데이터를 순차적으로 처리하는 프로그램을 개발할 때 유용하게 활용될 수 있습니다.
참고 문헌:
- https://en.wikipedia.org/wiki/Queue_(abstract_data_type)
- https://www.geeksforgeeks.org/queue-data-structure/