Создать стек вещественных чисел на основе статического массива - 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;
}

Объяснение кода листинга программы

  1. Включаются необходимые заголовочные файлы: stdlib.h для функций malloc и free, а также для объявления типа float; printf.h для функции printf.
  2. Объявляется структура узла TNode, которая содержит значение float и указатель на следующий узел.
  3. Создаются функции для работы со стеком: Push для добавления элемента в стек, Pop для удаления элемента из стека и Top для получения значения вершины стека без её удаления.
  4. В функции main создаётся массив CValues, инициализированный значениями от 1 до 10.
  5. Инициализируется указатель stack как NULL.
  6. В цикле добавляются все элементы массива CValues в стек с помощью функции Push.
  7. В цикле, пока stack не пуст, с помощью функции Pop удаляются значения из стека и выводятся на экран с помощью функции printf.
  8. В конце программы возвращается 0, что означает успешный конец работы программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4.125 из 5
Похожие ответы