스택과 큐
스택(LIFO)과 큐(FIFO) 데이터 구조 및 그 활용 사례를 이해해 보세요.
스택과 큐은(는) CoddyKit의 무료 C Academy 강의입니다. 이것은 3개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 C Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. C Academy 강의에는 총 3개의 강의가 포함되어 있습니다.
C의 스택과 큐
C의 스택과 큐
스택과 큐는 데이터를 저장하고 관리하는 데 사용하는 선형 자료 구조입니다.
이 단원에서는 다음 내용을 배웁니다:
- 스택이 작동하는 방식(LIFO - 후입선출)
- 큐가 작동하는 방식(FIFO - 선입선출)
- C에서 스택과 큐를 구현하는 방법

스택이란 무엇인가
스택이란 무엇인가
스택은 후입선출(LIFO) 원칙을 따릅니다.
연산:
- 푸시 - 맨 위에 요소를 추가합니다.
- 팝 - 맨 위의 요소를 제거합니다.
- 조회 - 요소를 제거하지 않고 맨 위의 요소를 확인합니다.
예제: 스택 구현하기
예제: 스택 구현하기
이 프로그램은 배열을 사용한 스택 연산을 보여 줍니다.
#include <stdio.h>
#define MAX 5
int stack[MAX], top = -1;
void push(int value) {
if (top == MAX - 1) {
printf("Stack Overflow\n");
} else {
stack[++top] = value;
}
}
int pop() {
if (top == -1) {
printf("Stack Underflow\n");
return -1;
} else {
return stack[top--];
}
}
int main() {
push(10);
push(20);
printf("Popped: %d\n", pop());
return 0;
}큐란 무엇인가
큐란 무엇인가
큐는 선입선출(FIFO) 원칙을 따릅니다.
연산:
- 인큐 - 뒤쪽에 요소를 추가합니다.
- 디큐 - 앞쪽에서 요소를 제거합니다.
- 조회 - 요소를 제거하지 않고 앞쪽의 요소를 확인합니다.
예제: 큐 구현하기
예제: 큐 구현하기
이 프로그램은 배열을 사용한 큐 연산을 보여 줍니다.
#include <stdio.h>
#define MAX 5
int queue[MAX], front = -1, rear = -1;
void enqueue(int value) {
if (rear == MAX - 1) {
printf("Queue Overflow\n");
} else {
if (front == -1) front = 0;
queue[++rear] = value;
}
}
int dequeue() {
if (front == -1 || front > rear) {
printf("Queue Underflow\n");
return -1;
} else {
return queue[front++];
}
}
int main() {
enqueue(10);
enqueue(20);
printf("Dequeued: %d\n", dequeue());
return 0;
}원형 큐
원형 큐
원형 큐는 비어 있는 공간을 재사용하여 일반 큐의 한계를 극복합니다.
연산은 동일하지만 배열을 순환하며 수행됩니다.
예제: 원형 큐
예제: 원형 큐
이 프로그램은 원형 큐의 구현을 보여 줍니다.
#include <stdio.h>
#define MAX 5
int queue[MAX], front = -1, rear = -1;
void enqueue(int value) {
if ((rear + 1) % MAX == front) {
printf("Queue Overflow\n");
} else {
if (front == -1) front = 0;
rear = (rear + 1) % MAX;
queue[rear] = value;
}
}
int dequeue() {
if (front == -1) {
printf("Queue Underflow\n");
return -1;
}
int data = queue[front];
if (front == rear) {
front = rear = -1;
} else {
front = (front + 1) % MAX;
}
return data;
}
int main() {
enqueue(10);
enqueue(20);
printf("Dequeued: %d\n", dequeue());
return 0;
}스택과 큐의 활용
스택과 큐의 활용
스택은 다음과 같은 경우에 사용됩니다:
- 함수 호출 관리(재귀)
- 실행 취소 및 다시 실행 연산
- 식 계산
큐는 다음과 같은 경우에 사용됩니다:
- 운영 체제에서 작업 예약
- 웹 서버에서 요청 관리
- 네트워크에서 데이터 전송
요약
요약
이 단원에서는 다음 내용을 배웠습니다:
- 스택과 큐가 작동하는 방식
- 스택과 큐 연산을 구현하는 방법
- 스택과 큐의 활용 분야
다음에는 C의 트리와 그래프를 살펴보겠습니다!

자주 묻는 질문
“스택과 큐” 강의는 무료인가요?
네 — “스택과 큐” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 C Academy 강의 전체를 잠금 해제할 수 있습니다. C Academy 강의에는 총 3개의 강의가 포함되어 있습니다.
“스택과 큐”에서 뭘 배우나요?
스택(LIFO)과 큐(FIFO) 데이터 구조 및 그 활용 사례를 이해해 보세요. 브라우저에서 직접 실행하는 실습 코드로 C Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
C Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 C Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 3개 중 2번째 강의입니다.
“스택과 큐” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 C Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 C Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.