/
Messus
/
Algorithms
Обзор
Документация
Войти
/
Messus
/
Algorithms
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
ai_stack.c
77 строк
2 KB
Messus
utf-8
03 мар 2026, 11:45
03 мар 2026, 11:45
67a2dd3
Код
Авторство
О чём код?
//ai_stack.c --- структура стек сгенерированная ИИ #include <stdio.h> #include <locale.h> #include <windows.h> #include <stdbool.h> #define MAXSTACK 100 // максимальный размер стека typedef int Item; // тип элемента стека (можно заменить на другой) typedef struct stack { Item items[MAXSTACK]; // массив дл¤ хранени¤ элементов int top; // индекс верхней ¤чейки (вершины стека) } Stack; void InitializeStack(Stack *ps); bool FullStack(const Stack *ps); bool EmptyStack(const Stack *ps); bool Push(Item item, Stack *ps); bool Pop(Item *pitem, Stack *ps); int main() { setlocale(LC_ALL, ""); SetConsoleCP(1251); SetConsoleOutputCP(1251); Stack my_stack; Item value; InitializeStack(&my_stack); // инициализируем стек // ƒобавл¤ем элементы Push(10, &my_stack); Push(20, &my_stack); Push(30, &my_stack); // »звлекаем и выводим элементы while (!EmptyStack(&my_stack)) { Pop(&value, &my_stack); printf("%d\n", value); // вывод: 30, 20, 10 } return 0; } void InitializeStack(Stack *ps) { ps->top = -1; // стек пуст } bool FullStack(const Stack *ps) { return ps->top == MAXSTACK - 1; } bool EmptyStack(const Stack *ps) { return ps->top == -1; } bool Push(Item item, Stack *ps) { if (FullStack(ps)) return false; // стек полон ps->items[++(ps->top)] = item; // увеличиваем top и записываем элемент return true; } bool Pop(Item *pitem, Stack *ps) { if (EmptyStack(ps)) return false; // стек пуст *pitem = ps->items[(ps->top)--]; // копируем элемент и уменьшаем top return true; }