#ifndef STACK_H #define STACK_H #include #include #define MAX_STACK_SIZE 100 // Структура элемента стека typedef struct { char *str_ptr; // Указатель на строку char type; // Тип операнда } Element; // Структура стека typedef struct { Element data[MAX_STACK_SIZE]; // Массив элементов int top; } Stack; // Инициализация стека void initStack(Stack *s); // Проверка на пустоту bool isEmpty(Stack *s); // Проверка на переполнение bool isFull(Stack *s); // Добавление опаранда в стек (push), // операндом может быть число или выражение с переменной bool push(Stack *s, const char *value, char type); // Извлечение элемента из стека (pop) bool pop(Stack *s, Element *out); // Просмотр верхнего элемента без извлечения (peek) bool peek(Stack *s, Element *out); // Очистка стека (освобождение памяти) void clearStack(Stack *s); #endif // STACK_H