Создать стек вещественных чисел на основе статического массива - C (СИ)
Формулировка задачи:
Создать стек вещественных чисел на основе статического массива. Реализовать методы : Добавить элемент, удалить элемент, вершина стека.
Решение задачи: «Создать стек вещественных чисел на основе статического массива»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> typedef struct node_t { float value; struct node_t* next; } TNode; //---------------------------------------------------------------------------- TNode* Push(TNode** stack, float value) { TNode* node = malloc(sizeof(TNode)); node->value = value; node->next = *stack; *stack = node; return *stack; } //---------------------------------------------------------------------------- float Pop(TNode** stack) { TNode* node = *stack; float value = node->value; *stack = node->next; free(node); return value; } //---------------------------------------------------------------------------- float Top(const TNode** stack) { return (*stack)->value; } //---------------------------------------------------------------------------- int main() { const float CValues[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; const size_t CValuesSize = sizeof(CValues) / sizeof(*CValues); TNode* stack = NULL; size_t i; for (i = 0; i < CValuesSize; ++i) { Push(&stack, CValues[i]); } while (stack) { printf("%.2f ", Pop(&stack)); } return 0; }
Объяснение кода листинга программы
- Включаются необходимые заголовочные файлы: stdlib.h для функций malloc и free, а также для объявления типа float; printf.h для функции printf.
- Объявляется структура узла TNode, которая содержит значение float и указатель на следующий узел.
- Создаются функции для работы со стеком: Push для добавления элемента в стек, Pop для удаления элемента из стека и Top для получения значения вершины стека без её удаления.
- В функции main создаётся массив CValues, инициализированный значениями от 1 до 10.
- Инициализируется указатель stack как NULL.
- В цикле добавляются все элементы массива CValues в стек с помощью функции Push.
- В цикле, пока stack не пуст, с помощью функции Pop удаляются значения из стека и выводятся на экран с помощью функции printf.
- В конце программы возвращается 0, что означает успешный конец работы программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д