#include#define Maxsize 10 static bool flag = 0; static int det = 0; typedef struct Queue { int val[Maxsize]; int front, tail; }Queue; int initQueue(Queue& Q) { Q.front = Q.tail = 0; return 1; } int Enqueue(Queue& Q, int num) { if ((flag) & (Q.front == Q.tail)) { printf("queue is full!n"); det = 1; return 0; } Q.val[Q.front++] = num; Q.front %= 10; if (Q.tail == Q.front) { det = 1; } flag = 1; return 1; } int Dequeue(Queue& Q) { if ((!flag) & (Q.front == Q.tail)) { printf("queue is empty!n"); return 0; } Q.tail++; Q.tail %= 10; det = 0; flag = 0; return 1; } int main() { Queue Q; int seq, num; int length; int i; initQueue(Q); while (true) { printf("1.Dequeuen2.Enqueuen"); printf("please enter your option:"); scanf_s("%d", &seq); switch (seq) { case(1): Dequeue(Q); break; case(2): printf("please enter the num:"); scanf_s("%d", &num); Enqueue(Q, num); break; default: break; } length = (Q.front - Q.tail+ Maxsize) % Maxsize + 10*det; printf("length:%dn", length); printf("npresent queue is:n"); for (i = 0; i < length; i++) { printf("%d ", Q.val[(Q.tail + i) % Maxsize]); } printf("n"); } return 0; }



