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

#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 변수는 항상 스택의 맨 위 요소를 가리킨다.