Сортировка динамического односвязного списка - C (СИ)
Формулировка задачи:
Здравствуйте.
Буду признателен за помощь в написании функции сортировки односвязного списка.
Вначале с клавиатуры вводятся целые числа и сохранаяются в списке. Далее этот список надо отсортировать по возростанию (или убыванию).
Вот программа (код Си) :
Буду признателен за содействие в написании функции
Листинг программы
- #include <stdio.h>
- #include <stdlib.h>
- typedef struct nd {
- int val ; // element of list
- struct nd *next ; // указывает на следующий узел списка
- } ND ;
- void print(ND *) ; // функция печати списка
- int lenght(ND *) ; // функция вычисления длины списка
- ND *Func_sort( ND *, int) ;функция сортировки списка - ее требуется написать!!!!
- int main( void ) {
- ND *first ; // указатель на начало списка
- ND *r ;
- int v ;
- int lenght_list ; //длина списка
- first = r = (ND*) malloc(sizeof(ND));
- scanf("%d", &v); // ввод чисел с клавиатуры
- r->val = v ;
- while ( scanf("%d", &v)==1) { // ввод чисел с клавиатуры и сохранение в односвязном списке
- r = r->next =(ND*) malloc(sizeof(ND)) ;
- r->val = v ;
- r->next = NULL ;
- }
- printf("\n%s", "List general: ") ;
- print(first) ; // вывод созданного неупорядоченного списка
- printf("\n%s%d", "Lenght of list: ", lenght_list = lenght(first)); // печать длины списка
- return 0 ;
- }
- void print( ND * start) {
- while (start!=NULL) {
- printf("%d ", start->val);
- start = start->next ;
- }
- return 0 ;
- }
- int lenght(ND *start) {
- return (start) ? lenght(start->next)+1 : 0 ;
- }
Листинг программы
- ND *Func_sort( ND *, int){ }
Решение задачи: «Сортировка динамического односвязного списка»
textual
Листинг программы
- а можно спросить ссылки или источники
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д