Реализовать функцию помещения в стек, изъятия из стека, получение текущего количества элементов - C (СИ)
Формулировка задачи:
Доброго всем. Не могу написать прогу, на динамику вообще ничего не получается сделать. Просмотрел много литературы и все равно не разобрался. В теории понимаю как должно быть, в практике не могу описать. Частично может потому, что использую pelles (только он, поменять среду нельзя)... даже примитивы кидают ошибки, те что в VS все гуд
Условие:
Есть динамическая структура СТЕК связного хранения. Поля: фамилия, имя, отчество. Необходимо реализовать функцию помещения в стек, изъятия из стека, получение текущего кол-ва элементов Буду очень благодарен любой помощи.Решение задачи: «Реализовать функцию помещения в стек, изъятия из стека, получение текущего количества элементов»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> typedef struct node_t { const char* surname; const char* name; const char* patronymic; struct node_t* next; } TStack; //----------------------------------------------------------------------------- TStack* Push(TStack** stack, const char* surname, const char* name, const char* patronymic) { TStack* node = malloc(sizeof(TStack)); node->surname = surname; node->name = name; node->patronymic = patronymic; node->next = *stack; *stack = node; return *stack; } //----------------------------------------------------------------------------- void Pop(TStack** stack) { TStack* node = *stack; *stack = node->next; free(node); } //----------------------------------------------------------------------------- void Clear(TStack** stack) { while (*stack) { Pop(stack); } } //----------------------------------------------------------------------------- size_t GetSize(const TStack* stack) { size_t count = 0; for (; stack; stack = stack->next) { count++; } return count; } //----------------------------------------------------------------------------- void Print(const TStack* stack) { for (; stack; stack = stack->next) { printf("%s %s %s\n", stack->surname, stack->name, stack->patronymic); } } //----------------------------------------------------------------------------- int main() { TStack* stack = NULL; Push(&stack, "Ivanov", "Ivan", "Ivanovich"); Push(&stack, "Petrov", "Petr", "Petrovich"); Push(&stack, "Pavlov", "Pavel", "Pavlovich"); Push(&stack, "------", "-----", "---------"); Pop(&stack); Print(stack); printf("size = %u\n", GetSize(stack)); Clear(&stack); return 0; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д