Создание и заполнение динамического односвязного списка - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Выручайте! Никак не могу понять как создать и заполнить односвязный список! На лекции дают какими-то отдельными кусками, причем удаление элемента, перемещение, а как создать список непонятно! Алгоритм записан такой: 1)создать пустой список (указатель списка равен NULL) 2)создание нового эл-а списка. выделение памяти и занесение в список. Уже 2ой час пытаюсь написать программу, например, необходимо заносить вводимые с клавиатуры числа в динамический список, вида:
Листинг программы
  1. struct LIST{
  2. int number;
  3. struct LIST *next;
  4. };
Выручайте!

Решение задачи: «Создание и заполнение динамического односвязного списка»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. struct LIST {
  5.     int number;
  6.     struct LIST *next;
  7. };
  8.  
  9. //-----------------------------------------------------------------------------
  10. void Push(struct LIST** list, int number) {
  11.     struct LIST* node = malloc(sizeof(struct LIST));
  12.     node->number = number;
  13.     node->next = *list;
  14.     *list = node;
  15. }
  16. //-----------------------------------------------------------------------------
  17. void Print(const struct LIST* list) {
  18.     if (list) {
  19.         Print(list->next);
  20.         printf("%d ", list->number);
  21.     }
  22. }
  23. //-----------------------------------------------------------------------------
  24.  
  25. int main() {
  26.     int i = 10;
  27.     struct LIST* list = NULL;
  28.  
  29.     while (i--) {
  30.         Push(&list, i + 1);
  31.     }
  32.  
  33.     Print(list);
  34.  
  35.     return 0;
  36. }

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

  1. Создание структуры данных LIST с полями number и next.
  2. Создание функции Push для добавления элемента в начало списка.
  3. Создание функции Print для печати списка.
  4. Инициализация переменной i со значением 10.
  5. Инициализация указателя list со значением NULL.
  6. В цикле while вызывается функция Push для добавления элемента в список.
  7. Вызывается функция Print для печати списка.
  8. Возвращается значение 0, что означает успешный конец работы программы.

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


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

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

11   голосов , оценка 4.091 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы