Программа должна уметь по команде создать односвязный список, добавить элемент в начало, середину или конец - 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);
}

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

  1. Объявлен тип структуры node, которая содержит целочисленное значение и указатель на следующий элемент списка.
  2. Объявлена переменная head типа node*, которая будет хранить указатель на первый элемент списка.
  3. Выделена память под новый элемент списка с помощью функции malloc.
  4. Если выделение памяти прошло успешно, то в новом элементе списка устанавливается значение value равное переданному аргументу функции add.
  5. Устанавливается указатель next нового элемента списка равным head, что означает, что новый элемент становится первым в списке.
  6. Указатель head присваивается адрес нового элемента списка.
  7. В функции main создается экземпляр списка, вызывается функция add с аргументом 500.

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

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