Advertisement
selkieautopsy13

kolejka

May 21st, 2018
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.46 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4.  
  5.  
  6. int rozmiar;
  7. int glowa;
  8. int ogon;
  9.  
  10. void wyswietl(int *liczba)
  11. {
  12.     int i,indeks;
  13.    for(i=0;i<rozmiar;i++)
  14.    {
  15.      indeks=glowa+i;
  16.        if (glowa+i>=5) indeks=glowa+i-5;
  17.        printf("%i ",liczba[i]);
  18.  
  19.    }
  20. }
  21.  
  22.  
  23.  
  24. void push(int *dane,int liczba)
  25. {
  26.     rozmiar=rozmiar+1;
  27.     realloc(dane,rozmiar*sizeof(int));  
  28.      
  29.     if(dane==NULL)
  30.     {
  31.         printf("Blad alokacji pamieci!");
  32.         exit(0);
  33.     }
  34.     else
  35.     {   ogon=(ogon+1)%rozmiar;
  36.         dane[ogon]=liczba;
  37.     }
  38.  
  39. }
  40.  
  41.  
  42. void pop(int *dane)
  43. {
  44.     int i;
  45.    
  46.     if(dane==NULL)
  47.     {
  48.         printf("Blad alokacji pamieci!");
  49.         exit(0);
  50.     }
  51.     else
  52.     {
  53.         for(i=0;i<=rozmiar-1;i++)
  54.         {
  55.             dane[i]=dane[i+1];
  56.         }
  57.         rozmiar-=1;
  58.        
  59.         realloc(dane,rozmiar*sizeof(int));
  60.                    
  61.         glowa=(glowa+1)%rozmiar;
  62.          
  63.     }
  64.    
  65.  
  66. }
  67.  
  68.  
  69. int main()
  70. {
  71.    
  72.     int *dane;
  73.     dane = (int*)malloc(rozmiar*sizeof(int));
  74.    
  75.     rozmiar=0;
  76.     glowa=0;
  77.     ogon=0;
  78.     push(dane,5);
  79.      printf("\nLiczby w stosie: \n");
  80.     wyswietl(dane);
  81.     push(dane,6);
  82.      printf("\nLiczby w stosie: \n");
  83.     wyswietl(dane);
  84.     push(dane,1);
  85.      printf("\nLiczby w stosie: \n");
  86.     wyswietl(dane);
  87.     push(dane,7);
  88.      printf("\nLiczby w stosie: \n");
  89.     wyswietl(dane);
  90.     pop(dane);
  91.     printf("\nLiczby w stosie: \n");
  92.     wyswietl(dane);
  93.     pop(dane);
  94.     printf("\nLiczby w stosie: \n");
  95.     wyswietl(dane);
  96.     free(dane);
  97.     return 0;
  98. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement