Реализовать алгоритм работы с динамической структурой данных – однонаправленный список - C (СИ) (77265)
Формулировка задачи:
Друзья помогите пожалуйста написать прогу.....
Необходимо организовать список, при этом необходимо написать программу таким образом, чтобы из функции main доступ к списку был возможен только с помощью функций добавления элемента в список, удаления элемента из списка и просмотра содержимого списка. Таким образом, необходимо все функции работы со списком вынести в отдельный файл, и для всех переменных и функции использовать необходимые модификаторы классов памяти.
Реализовать алгоритм работы с динамической структурой данных – однонаправленный список: элементы добавляются и удаляются с начала, просматриваются с конца списка. Элементы списка – вещественные числа.
Решение задачи: «Реализовать алгоритм работы с динамической структурой данных – однонаправленный список»
textual
Листинг программы
#ifndef DS_SINGLY_H
#define DS_SINGLY_H
#include <stddef.h>
struct singly_node;
struct singly_list {
struct singly_node *head;
};
void singly_print(const struct singly_list *list);
int singly_empty(const struct singly_list *list);
size_t singly_size(const struct singly_list *list);
void singly_clear(struct singly_list *list);
int singly_push_front(struct singly_list *list, double value);
int singly_push_back(struct singly_list *list, double value);
int singly_pop_front(struct singly_list *list);
int singly_pop_back(struct singly_list *list);
int singly_insert(struct singly_list *list, size_t position, double value);
int singly_erase(struct singly_list *list, size_t position);
#endif /* singly.h */
Объяснение кода листинга программы
В данном коде реализуется алгоритм работы с динамической структурой данных – однонаправленный список.
- Создается структура
singly_node, которая будет представлять элемент списка. - Создается структура
singly_list, которая будет содержать указатель на голову списка. - Реализуются функции для работы со списком:
singly_print- вывод элементов списка на экран;singly_empty- проверка, пустой ли список;singly_size- получение размера списка;singly_clear- очистка списка;singly_push_front- добавление элемента в начало списка;singly_push_back- добавление элемента в конец списка;singly_pop_front- удаление элемента из начала списка;singly_pop_back- удаление элемента из конца списка;singly_insert- вставка элемента в список на определенную позицию;singly_erase- удаление элемента из списка на определенной позиции. Список содержит функции для работы с динамической структурой данных - однонаправленным списком. Он позволяет добавлять, удалять и перемещать элементы в произвольном месте списка. Кроме того, он позволяет проверить, пустой ли список, и выводит его содержимое на экран.