Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- #define max 100
- struct queue {
- int n, k;
- int q[max];
- };
- // <-- [0 1 2 3 4] <--
- // n k
- void init(queue* q) {
- q->n = 0;
- q->k = 0;
- }
- bool isEmpty(queue* q) {
- return q->n == q->k;
- }
- void inQ(queue* q, int x) {
- if (q->k - q->n == max - 1) {
- cout << "АЛЯРМ МЕСТА НЕТ ТРiВОГА ЯРiК!!!";
- } else {
- //Если очередь не полная, но уперлись в потолок массива, а в начале массива есть еще место, то сдвигаем всю очередь
- if (q->k == max - 1) {
- for (int j = q->n; j <= q->k; j++)
- q->q[j - q->n] = q->q[j];
- q->k = q->k - q->n;
- q->n = 0;
- }
- q->q[q->k++] = x;
- }
- }
- int outQ(queue* q) {
- if (isEmpty(q)) {
- cout << "чел ты чел очередь пустая чел ты кого извлекаешь";
- } else {
- return q->q[q->n++];
- }
- }
- void main() {
- queue* q = new(queue);
- init(q);
- inQ(q, 3);
- inQ(q, 7);
- inQ(q, 19);
- cout << outQ(q) << endl;
- cout << outQ(q) << endl;
- cout << outQ(q) << endl;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement