0Pricing
C Academy · 강의

스택과 큐

스택(LIFO)과 큐(FIFO) 데이터 구조 및 그 활용 사례를 이해해 보세요.

스택과 큐은(는) CoddyKit의 무료 C Academy 강의입니다. 이것은 3개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 C Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. C Academy 강의에는 총 3개의 강의가 포함되어 있습니다.

C의 스택과 큐

C의 스택과 큐

스택과 큐는 데이터를 저장하고 관리하는 데 사용하는 선형 자료 구조입니다.

이 단원에서는 다음 내용을 배웁니다:

  • 스택이 작동하는 방식(LIFO - 후입선출)
  • 큐가 작동하는 방식(FIFO - 선입선출)
  • C에서 스택과 큐를 구현하는 방법
스택과 큐 — 일러스트레이션 1

스택이란 무엇인가

스택이란 무엇인가

스택은 후입선출(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의 트리와 그래프를 살펴보겠습니다!

스택과 큐 — 일러스트레이션 10

자주 묻는 질문

“스택과 큐” 강의는 무료인가요?

네 — “스택과 큐” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 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 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 연결 리스트
  2. 스택과 큐
  3. 트리와 그래프
← C Academy(으)로 돌아가기