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

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

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

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

textual
#include <stdio.h>
#include <stdlib.h>
 
struct LIST {
    int number;
    struct LIST *next;
};
 
//-----------------------------------------------------------------------------
void Push(struct LIST** list, int number) {
    struct LIST* node = malloc(sizeof(struct LIST));
    node->number = number;
    node->next = *list;
    *list = node;
}
//-----------------------------------------------------------------------------
void Print(const struct LIST* list) {
    if (list) {
        Print(list->next);
        printf("%d ", list->number);
    }
}
//-----------------------------------------------------------------------------
 
int main() {
    int i = 10;
    struct LIST* list = NULL;
 
    while (i--) {
        Push(&list, i + 1);
    }
 
    Print(list);
 
    return 0;
}

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


СОХРАНИТЬ ССЫЛКУ