Advertisement
Guest User

Untitled

a guest
Jan 17th, 2018
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.33 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. typedef struct lista lista;
  5.  
  6. struct lista
  7. {
  8. int value;
  9. lista *next;
  10. };
  11.  
  12. lista *Add(lista *list, int value)
  13. {
  14. lista *new = malloc(sizeof(lista));
  15. if(new == NULL) return NULL;
  16.  
  17. new->next = list;
  18. new->value = value;
  19. return new;
  20. }
  21.  
  22. int show(lista *list)
  23. {
  24. //lista *lisa;
  25. while(list != NULL)
  26. {
  27. printf("%d\n", list->value);
  28. list = list->next;
  29. }
  30. return 1;
  31. }
  32.  
  33. int compare(lista *a, lista *b)
  34. {
  35. if(a->value < b->value) return -1;
  36. if(a->value == b->value) return 0;
  37. return 1;
  38. }
  39.  
  40. lista *ListToArray(lista *li, int lenght)
  41. {
  42. int i;
  43. lista *new = malloc(lenght * sizeof(lista));
  44. if(new == NULL) return NULL;
  45. for( i = 0; i < lenght; i++)
  46. {
  47. (new + i)->value = li->value;
  48. (new + i)->next = li->next;
  49. li = li->next;
  50. }
  51. return new;
  52. }
  53.  
  54. int main(void)
  55. {
  56. int i;
  57. lista *li = malloc(sizeof(lista));
  58. li->value = 13;
  59. li = Add(li, 9);
  60. li = Add(li, 18);
  61. li = Add(li, 169);
  62. li = Add(li, 7);
  63.  
  64. show(li);
  65.  
  66. printf("\n");
  67.  
  68. lista *tablica = ListToArray(li, 5);
  69. qsort(tablica, 5, sizeof(lista), compare);
  70.  
  71. for( i = 0; i < 5; i++)
  72. {
  73. printf("%d\n", (tablica + i)->value);
  74. }
  75.  
  76. return 0;
  77. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement