Advertisement
desdemona

fifo pociag

Feb 27th, 2013
215
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.40 KB | None | 0 0
  1. //fifo kolejka na structach
  2.  
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5.  
  6. struct fifo_pociag
  7. {
  8.     int liczba;
  9.     struct fifo_pociag *nastepca;
  10. } *poczatek = NULL;
  11.  
  12. void push(int x)
  13. {
  14.     if(poczatek!= NULL)
  15.     {
  16.         struct fifo_pociag *koniec = poczatek;
  17.         while(koniec->nastepca != NULL)
  18.         {
  19.             koniec = koniec->nastepca;
  20.             //super, szukamy konca kolejki
  21.         }
  22.  
  23.         koniec->nastepca = (struct fifo_pociag *)malloc(sizeof(struct fifo_pociag));
  24.         koniec->nastepca->liczba=x;
  25.         koniec->nastepca->nastepca = NULL;
  26.     }
  27.     else
  28.     {
  29.         poczatek = (struct fifo_pociag *)malloc(sizeof(struct fifo_pociag));
  30.         poczatek->liczba=x;
  31.         poczatek->nastepca = NULL;
  32.     }
  33. }
  34.  
  35. void pisz()
  36. {
  37.     if(poczatek == NULL)
  38.     {
  39.         printf("kolejka pusta\n");
  40.     }
  41.     else
  42.     {
  43.         struct fifo_pociag *koniec = poczatek;
  44.  
  45.         while(koniec->nastepca != NULL)
  46.         {
  47.             printf("%i\n", koniec->liczba);
  48.             koniec = koniec->nastepca;
  49.         }
  50.         printf("koniec kolejki\n\n");
  51.     }
  52. }
  53. int pop()
  54. {
  55.     if(poczatek != NULL)
  56.     {
  57.         int x = 0;
  58.         struct fifo_pociag *p;
  59.         p = poczatek;
  60.         x = poczatek->liczba;
  61.         poczatek=poczatek->nastepca;
  62.         free(p);
  63.         return x;
  64.     }
  65.     else
  66.     {
  67.         printf("z pustego to i salomon nie usunie\n");
  68.         return 0;
  69.     }
  70. }
  71.  
  72.  
  73.  
  74. int main()
  75. {
  76.     pop();
  77.     pisz();
  78.     push(9);
  79.     pisz();
  80.     push(666);
  81.     pisz();
  82.     push(54);
  83.     pisz();
  84.  
  85.     push(17);
  86.     pisz();
  87.     pop();
  88.     pisz();
  89.     push(33);
  90.     push(71);
  91.     push(12);
  92.     pop();
  93.     pisz();
  94.    
  95.     return 0;
  96. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement