Advertisement
Guest User

Untitled

a guest
Dec 12th, 2018
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.56 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4.  
  5. int main() {
  6.  
  7. int q_cap = 4;// length
  8. int q_count = 0, q_head = 0, q_tail = 0, x = 0;
  9. char Name_func[7]; // по ней будем понимать какую функцию делать.
  10. int LenFunc;
  11. // int superflag = 0;
  12. // int superflag2 = 0;
  13.  
  14. scanf("%d", &LenFunc); // считываем кол-во действий
  15.  
  16. int *q_data = (int *) malloc(q_cap * sizeof(int));
  17.  
  18. for (int i = LenFunc; i > 0; i--) {
  19.  
  20. scanf("%s", &Name_func);
  21.  
  22. if ((Name_func[0] == 'E') & (Name_func[1] == 'M')) { // EMP 1 // Этот шаг точно правильный.
  23.  
  24. if (q_count == 0)
  25. printf("%s\n", "true");
  26. else
  27. printf("%s\n", "false");
  28. }
  29.  
  30. if ((Name_func[0] == 'E') & (Name_func[1] == 'N')) { // ENQ 2
  31.  
  32. if (q_count == q_cap) { // длина = кол-ву элементов
  33.  
  34. ////
  35. int *array_help = (int *) malloc(q_cap * sizeof(int));
  36.  
  37. for (int i = q_head; i < q_cap; i++)
  38. array_help[i - q_head] = q_data[i];
  39.  
  40. for (int i = 0; i < q_head; i++)
  41. array_help[i + q_head + 1] = q_data[i];
  42.  
  43. free(q_data);
  44.  
  45. q_cap = q_cap * 2;
  46.  
  47. q_data = (int *) malloc(q_cap * sizeof(int));
  48.  
  49. for (int i = 0; i < q_cap; i++)
  50. q_data[i] = 0;
  51.  
  52. for (int i = 0; i < q_cap; i++)
  53. q_data[i] = array_help[i];
  54.  
  55. q_tail = (q_cap/2);
  56. q_head = 0;
  57.  
  58. // for (int i = 0; i < q_cap ; i++)
  59. // printf("%d" , q_data[i]);
  60.  
  61. free(array_help);
  62. ////
  63. }
  64.  
  65. scanf("%d", &x);
  66. q_data[q_tail] = x;
  67.  
  68. printf("%s %d \n", "индекс :", q_tail);
  69. printf("%s %d \n", " вход : ", q_data[q_tail]);
  70.  
  71. q_tail++;
  72.  
  73.  
  74. if (q_tail == q_cap)
  75. q_tail = 0;
  76. q_count++;
  77. // superflag++;
  78. }
  79.  
  80. if ((Name_func[0] == 'D') & (Name_func[1] == 'E')) { // DEQ
  81.  
  82. printf("%d\n", q_data[q_head]);
  83. printf("%s %d \n", " Проверка удаления : ", q_head);
  84. q_head++;
  85.  
  86. if (q_head == q_cap)
  87. q_head = 0;
  88. q_count--;
  89. // superflag2++;
  90.  
  91. }
  92. }
  93. free(q_data);
  94. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement