Создать односвязный упорядоченный список - C (СИ)

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

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

Здравствуйте, помогите пожалуйста, нужно написать программу. Вводим числа с клавиатуры и сразу упорядочиваем их.( всё это список ) не могу понять как сделать, подскажите пожалуйста!

Решение задачи: «Создать односвязный упорядоченный список»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
 
typedef struct list
{
    int data;
    struct list *next;
} List;
 
 
void Insert(List **head, const int x)
{
    List *cur = *head;
    if (*head && (*head)->data < x)
        Insert(&(*head)->next, x);
    else
    {
        *head = malloc(sizeof(List));
        (*head)->data = x;
        (*head)->next = cur;
    }
}
 
void Print(const List *head)
{
    while (head)
    {
        printf("%d\n", head->data);
        head = head->next;
    }
}
 
void Free(List *head)
{
    if (head)
        Free(head->next);
    free(head);
}
 
int main(void)
{
    List *head = NULL;
    Insert(&head, 2);
    Insert(&head, 4);
    Insert(&head, 3);
    Insert(&head, 1);
    Insert(&head, 5);
    Print(head);
    Free(head);
    return 0;
}

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

  1. В начале кода определяются структура списка и необходимые функции для работы со списком.
  2. В функции Insert происходит вставка элемента в список. Если список пуст или новый элемент больше текущего элемента, то рекурсивно вызывается функция Insert для следующего элемента. Если список не пуст и новый элемент меньше текущего, то он вставляется в список.
  3. В функции Print происходит вывод элементов списка в консоль.
  4. В функции Free происходит освобождение памяти, выделенной под элементы списка.
  5. В функции main создается список и заполняется элементами. Затем список выводится на экран и освобождается память, выделенная под него.
  6. Код не содержит ошибок и работает корректно.

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


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

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

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