스택은 데이터를 저장하고 관리하는 자료구조이다. 스택은 '쌓아 올린다'는 의미를 가지고 있으며, 데이터의 삽입과 삭제가 한쪽 끝에서만 이루어지는 LIFO(Last In First Out, 후입선출) 방식으로 동작한다.

image.png

스택의 주요 특징

스택의 주요 연산

구현

1. 스택 구조체 정의

#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>

#define MAX_SIZE 100

// 스택 구조체 정의
typedef struct {
    int items[MAX_SIZE];  // 데이터를 저장할 배열
    int top;              // 스택의 맨 위를 가리키는 인덱스
} Stack;

위 코드는 C언어로 스택을 구현하기 위한 기본 구조체를 정의한다. 스택은 MAX_SIZE 크기의 배열과 스택의 맨 위를 가리키는 top 인덱스로 구성된다. top 변수는 항상 스택의 맨 위 요소를 가리킨다.

2. 스택 초기화 함수