Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- int main() {
- int q_cap = 4;// length
- int q_count = 0, q_head = 0, q_tail = 0, x = 0;
- char Name_func[7]; // по ней будем понимать какую функцию делать.
- int LenFunc;
- // int superflag = 0;
- // int superflag2 = 0;
- scanf("%d", &LenFunc); // считываем кол-во действий
- int *q_data = (int *) malloc(q_cap * sizeof(int));
- for (int i = LenFunc; i > 0; i--) {
- scanf("%s", &Name_func);
- if ((Name_func[0] == 'E') & (Name_func[1] == 'M')) { // EMP 1 // Этот шаг точно правильный.
- if (q_count == 0)
- printf("%s\n", "true");
- else
- printf("%s\n", "false");
- }
- if ((Name_func[0] == 'E') & (Name_func[1] == 'N')) { // ENQ 2
- if (q_count == q_cap) { // длина = кол-ву элементов
- ////
- int *array_help = (int *) malloc(q_cap * sizeof(int));
- for (int i = q_head; i < q_cap; i++)
- array_help[i - q_head] = q_data[i];
- for (int i = 0; i < q_head; i++)
- array_help[i + q_head + 1] = q_data[i];
- free(q_data);
- q_cap = q_cap * 2;
- q_data = (int *) malloc(q_cap * sizeof(int));
- for (int i = 0; i < q_cap; i++)
- q_data[i] = 0;
- for (int i = 0; i < q_cap; i++)
- q_data[i] = array_help[i];
- q_tail = (q_cap/2);
- q_head = 0;
- // for (int i = 0; i < q_cap ; i++)
- // printf("%d" , q_data[i]);
- free(array_help);
- ////
- }
- scanf("%d", &x);
- q_data[q_tail] = x;
- printf("%s %d \n", "индекс :", q_tail);
- printf("%s %d \n", " вход : ", q_data[q_tail]);
- q_tail++;
- if (q_tail == q_cap)
- q_tail = 0;
- q_count++;
- // superflag++;
- }
- if ((Name_func[0] == 'D') & (Name_func[1] == 'E')) { // DEQ
- printf("%d\n", q_data[q_head]);
- printf("%s %d \n", " Проверка удаления : ", q_head);
- q_head++;
- if (q_head == q_cap)
- q_head = 0;
- q_count--;
- // superflag2++;
- }
- }
- free(q_data);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement