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

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

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

Здравствуйте. Буду признателен за помощь в написании функции сортировки односвязного списка. Вначале с клавиатуры вводятся целые числа и сохранаяются в списке. Далее этот список надо отсортировать по возростанию (или убыванию). Вот программа (код Си) :
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. typedef struct nd {
  4. int val ; // element of list
  5. struct nd *next ; // указывает на следующий узел списка
  6. } ND ;
  7. void print(ND *) ; // функция печати списка
  8. int lenght(ND *) ; // функция вычисления длины списка
  9. ND *Func_sort( ND *, int) ;функция сортировки списка - ее требуется написать!!!!
  10. int main( void ) {
  11. ND *first ; // указатель на начало списка
  12. ND *r ;
  13. int v ;
  14. int lenght_list ; //длина списка
  15. first = r = (ND*) malloc(sizeof(ND));
  16. scanf("%d", &v); // ввод чисел с клавиатуры
  17. r->val = v ;
  18. while ( scanf("%d", &v)==1) { // ввод чисел с клавиатуры и сохранение в односвязном списке
  19. r = r->next =(ND*) malloc(sizeof(ND)) ;
  20. r->val = v ;
  21. r->next = NULL ;
  22. }
  23. printf("\n%s", "List general: ") ;
  24. print(first) ; // вывод созданного неупорядоченного списка
  25. printf("\n%s%d", "Lenght of list: ", lenght_list = lenght(first)); // печать длины списка
  26.  
  27. return 0 ;
  28. }
  29. void print( ND * start) {
  30. while (start!=NULL) {
  31. printf("%d ", start->val);
  32. start = start->next ;
  33. }
  34. return 0 ;
  35. }
  36. int lenght(ND *start) {
  37. return (start) ? lenght(start->next)+1 : 0 ;
  38. }
Буду признателен за содействие в написании функции
Листинг программы
  1. ND *Func_sort( ND *, int){ }

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

textual
Листинг программы
  1. а можно спросить ссылки или источники

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


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

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

10   голосов , оценка 4 из 5

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

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

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