Домашняя работа №4 по языку Си

Пусть есть некоторый тип данных Value. Реализуется стек (LIFO) из элементов этого типа.

Для этого определяются следующие глобальные переменные:
Value *stackItems;
int stackCapacity;

stackItems — это массив для хранения элементов стека. Переменная stackCapacity хранит размер этого массива. Оно же равно предельному числу переменных типа Value, которые можно поместить в стек.

Функция int stackInit(int capacity); предназначена для создания пустого стека с максимальным количеством элементов capacity. Если это удается, функция возвращает 0. Иначе функция возвращает ненулевой код ошибки. Далее размер массива не меняется.

Функция int stackPush(Value *value); предназначена для добавления *value на вершину стека. Если это удается, функция возвращает 0. Иначе функция возвращает ненулевой код ошибки.

Функция int stackPop(Value *value); предназначена для извлечения элемента с вершины стека и записи его по указателю value. Если это удается, функция возвращает 0. Иначе функция возвращает ненулевой код ошибки.

Других функций, работающих с этими переменными, нет.

Исходный текст заголовочного файла с объявлениями переменных и функций можно скачать по этой ссылке. Вам нужно дополнить его спецификациями переменных и функций, отражающими все вышеописанные требования (и только их). Готовый файл отправляйте на почту до 12:00 23 апреля.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.