Advertisement
Guest User

Untitled

a guest
Oct 21st, 2014
167
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.  
  4. struct kolejka
  5. {
  6. int dana;
  7. struct kolejka *nast;
  8. };
  9.  
  10. void dodaj_element_k(struct kolejka **p, int co_dodac)
  11. {
  12. struct kolejka *pom = *p;
  13. struct kolejka *el = malloc(sizeof(struct kolejka));
  14. el->dana = co_dodac;
  15. el->nast = NULL;
  16. if(*p == NULL)
  17. {
  18. *p = el;
  19. }
  20. else
  21. {
  22. while(pom->nast != NULL)
  23. pom = pom->nast;
  24. pom->nast = el;
  25. }
  26. }
  27.  
  28. int usun_element_p(struct kolejka **p)
  29. {
  30. if(*p != NULL)
  31. {
  32. struct kolejka *pom = (*p)->nast;
  33. int zwroc_wartosc = (*p)->dana;
  34. free(*p);
  35. *p = pom;
  36. return zwroc_wartosc;
  37. }
  38. return -1;
  39. }
  40.  
  41. void usun_kolejke(struct kolejka **p)
  42. {
  43. while(usun_element_p(p) != -1);
  44. }
  45.  
  46. void wyswietl_kolejke(struct kolejka *p)
  47. {
  48. while(p != NULL)
  49. {
  50. printf("Element kolejki: %d\n", p->dana);
  51. p = p->nast;
  52. }
  53. }
  54.  
  55. void sprawdz_kolejke(struct kolejka *p)
  56. {
  57. if(p != NULL)
  58. printf("Elementy sa jeszcze w kolejce...\n");
  59. else printf("Kolejka jest pusta...\n");
  60. }
  61.  
  62. int main()
  63. {
  64. struct kolejka *poczatek = NULL;
  65. dodaj_element_k(&poczatek, 2);
  66. dodaj_element_k(&poczatek, 4);
  67. dodaj_element_k(&poczatek, 6);
  68. dodaj_element_k(&poczatek, 8);
  69. dodaj_element_k(&poczatek, 10);
  70.  
  71. printf("Wyswietlam kolejke... \n");
  72. wyswietl_kolejke(poczatek);
  73. printf("Usuwam element z kolejki: %d\n", usun_element_p(&poczatek));
  74. printf("Wyswietlam kolejke po usunieci 1 elementu:\n");
  75. wyswietl_kolejke(poczatek);
  76. sprawdz_kolejke(poczatek);
  77. printf("Usuwam cala kolejke...\n");
  78. usun_kolejke(&poczatek);
  79. sprawdz_kolejke(poczatek);
  80. return 0;
  81. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement