Advertisement
Guest User

Untitled

a guest
Jun 22nd, 2017
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.43 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #define SIZE 5
  4.  
  5. void add_at_back(int *, int);
  6. void remove_at_back(int*);
  7. void remove_k_element(int*, int);
  8. void print_list(int*);
  9.  
  10. int main()
  11. {
  12. int *tab=(int)calloc(SIZE, sizeof(int));
  13. tab[0]=0;
  14.  
  15. int i;
  16. for(i=0;i<32;++i)
  17. add_at_back(tab,i);
  18.  
  19. print_list(tab);
  20. remove_at_back(tab);
  21. remove_at_back(tab);
  22. remove_at_back(tab);
  23. remove_at_back(tab);
  24. remove_at_back(tab);
  25. remove_at_back(tab);
  26. remove_at_back(tab);
  27. remove_k_element(tab,1);
  28. remove_k_element(tab,3);
  29. remove_k_element(tab,5);
  30. print_list(tab);
  31.  
  32. return 0;
  33. }
  34. void add_at_back(int *tab, int data)
  35. {
  36. if((tab[0]+1)%5==0)
  37. tab=(int)realloc(tab,SIZE*sizeof(int)+(tab[0]+1)*sizeof(int));
  38.  
  39. tab[++tab[0]]=data;
  40. }
  41. void remove_at_back(int *tab)
  42. {
  43. if(tab[0]>0)
  44. {
  45. tab[tab[0]]=0;
  46. tab[0]--;
  47. }
  48.  
  49. if((tab[0])%5==0)
  50. tab=(int)realloc(tab,SIZE*sizeof(int)+(tab[0]+1)*sizeof(int));
  51. }
  52.  
  53. void print_list(int *tab)
  54. {
  55. int i;
  56.  
  57. for(i=1;i<tab[0]+1;++i)
  58. printf("%d ", tab[i]);
  59. puts("");
  60. }
  61.  
  62. void remove_k_element(int *tab, int k)
  63. {
  64. if(tab[0]>=1 && (k<=tab[0]))
  65. {
  66. int i;
  67. for(i=k;i<tab[0]+1;++i)
  68. tab[i]=tab[i+1];
  69. tab[0]--;
  70.  
  71. if((tab[0])%5==0)
  72. tab=(int)realloc(tab,SIZE*sizeof(int)+(tab[0]+1)*sizeof(int));
  73.  
  74. }
  75.  
  76. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement