Программа должна уметь по команде создать односвязный список, добавить элемент в начало, середину или конец - C (СИ)
Формулировка задачи:
Доброго времени суток всем читающим. Поступил на мехмат, но больше всего мозги делают с программированием. Задача состоит в том, чтобы написать программу с диалоговым меню и набором заданных команд. Программа должна уметь по команде создать односвязный список, добавить элемент в начало, середину или конец, удалить элемент оттуда же, вывести список на печать, или удалить список.Интернет был перелопачен в немыслимых размерах еще две ночи назад, но толком ничего не было найдено. Прошу опытных С-кодеров объяснить пошагово, что такое односвязные списки и под каким соусом их подавать.
Решение задачи: «Программа должна уметь по команде создать односвязный список, добавить элемент в начало, середину или конец»
textual
Листинг программы
- typedef struct node
- {
- int value;
- struct node *next;
- }node;
- node *head;
- void add(int value)
- {
- node *new = malloc(sizeof(node));
- if(!new) return;
- new->value = value;
- new->next = head;
- head = new;
- }
- int main(void)
- {
- add(500);
- }
Объяснение кода листинга программы
- Объявлен тип структуры
node
, которая содержит целочисленное значение и указатель на следующий элемент списка. - Объявлена переменная
head
типаnode*
, которая будет хранить указатель на первый элемент списка. - Выделена память под новый элемент списка с помощью функции
malloc
. - Если выделение памяти прошло успешно, то в новом элементе списка устанавливается значение
value
равное переданному аргументу функцииadd
. - Устанавливается указатель
next
нового элемента списка равнымhead
, что означает, что новый элемент становится первым в списке. - Указатель
head
присваивается адрес нового элемента списка. - В функции
main
создается экземпляр списка, вызывается функцияadd
с аргументом 500.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д