Advertisement
Guest User

Untitled

a guest
Jan 17th, 2018
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.73 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #define M 3
  4.  
  5. typedef struct lista
  6. {
  7. int id;
  8. struct lista *nastepny;
  9. }lista;
  10.  
  11.  
  12. lista* dodawanie (lista *head,int dana)
  13. {
  14. lista *nowy;
  15. nowy=(lista *)malloc(sizeof(lista));
  16. nowy->id=dana;
  17. nowy->nastepny=head;
  18. return nowy;
  19.  
  20. }
  21. int porownanie (const void *a,const void *b)
  22. {
  23. const lista* el1=a;
  24. const lista* el2=b;
  25. if (el1->id > el2->id)
  26. {
  27. return 1;
  28. }
  29. else if (el1->id == el2->id)
  30. {
  31. return 0;
  32. }
  33. else return -1;
  34. }
  35. void wyswietlanie(lista *head)
  36. {
  37. lista *current = head;
  38. while(current->nastepny != NULL)
  39. {
  40. printf("%d\n",current->id);
  41. current = current->nastepny;
  42. }
  43.  
  44. }
  45. lista * listtoarray(lista* head_t)
  46. {
  47. int i;
  48. struct lista *tablica;
  49. tablica=(lista *)malloc(M*sizeof(lista));
  50. for (i = 0; i < M;i++)
  51. {
  52. (tablica+i)->id=head_t->id;
  53. (tablica+i)->nastepny=head_t->nastepny;
  54. head_t = head_t->nastepny;
  55. }
  56. return tablica;
  57. }
  58. int main()
  59. {
  60. lista *head_t=malloc(sizeof(lista));
  61. head_t=dodawanie(head_t,3);
  62. head_t=dodawanie(head_t,1);
  63. head_t=dodawanie(head_t,2);
  64. lista *lel;
  65. lel=head_t;
  66. wyswietlanie(head_t);
  67. lista * tablica=listtoarray(head_t);
  68. qsort(tablica,M,sizeof(lista),porownanie);
  69. printf("%d\t%d\t%d\n",tablica[0].id,tablica[1].id,tablica[2].id);
  70. int i;
  71. for (i = 0; i < M; i++)
  72. {
  73. {
  74. tablica[i].nastepny=NULL;
  75. }
  76. tablica[i].nastepny=&tablica[i+1];
  77. }
  78. tablica[M].nastepny=NULL;
  79. head_t->id=tablica[0].id;
  80. head_t->nastepny=&tablica[1];
  81. wyswietlanie(head_t);
  82. free(head_t);
  83.  
  84. return 0;
  85. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement