Создание и заполнение динамического односвязного списка - C (СИ)
Формулировка задачи:
Выручайте! Никак не могу понять как создать и заполнить односвязный список! На лекции дают какими-то отдельными кусками, причем удаление элемента, перемещение, а как создать список непонятно!
Алгоритм записан такой:
1)создать пустой список (указатель списка равен NULL)
2)создание нового эл-а списка. выделение памяти и занесение в список.
Уже 2ой час пытаюсь написать программу, например, необходимо заносить вводимые с клавиатуры числа в динамический список, вида:
Выручайте!
Листинг программы
- struct LIST{
- int number;
- struct LIST *next;
- };
Решение задачи: «Создание и заполнение динамического односвязного списка»
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;
- }
Объяснение кода листинга программы
- Создание структуры данных
LIST
с полямиnumber
иnext
. - Создание функции
Push
для добавления элемента в начало списка. - Создание функции
Print
для печати списка. - Инициализация переменной
i
со значением 10. - Инициализация указателя
list
со значением NULL. - В цикле
while
вызывается функцияPush
для добавления элемента в список. - Вызывается функция
Print
для печати списка. - Возвращается значение 0, что означает успешный конец работы программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д