#include<iostream> #define maxsize 100 using namespace std; struct CLqueue { int *Q; int front; int rear; int tag; }; typedef struct CLqueue *CL; void Init(CL &q) { q = new CLqueue; q->Q=new int[maxsize]; q->tag = 0;//队空 q->rear = q->front=0; } bool Judge(CL &q) { if (q->tag) return true; else return false; } void Enqueue(CL &q,int a) { if (Judge(q)) return; q->Q[q->rear] = a; q->rear = (q->rear +1 ) % maxsize; if ((q->rear + 1) % maxsize == q->front) q->tag = 1; } void Dlqueue(CL &q) { if (!Judge(q)) return; q->front = (q->front + 1) % maxsize; if ((q->front + 1) % maxsize == q->rear) q->tag = 0; } int main() { int n; CL q; while (cin >> n && n != 0) { Init(q); for (int i= 0; i < n; i++) { int a; cin >> a; Enqueue(q, a); } for (int i = q->front; i < q->rear-1; i++) { cout << q->Q[i] << " "; } cout<< q->Q[q->rear-1] << endl; } return 0; }
#include<iostream> #define maxsize 100 using namespace std; struct CLqueue { int *Q; int front; int rear; int tag; }; typedef struct CLqueue *CL; void Init(CL &q) { q = new CLqueue; q->Q=new int[maxsize]; q->tag = 0;//队空 q->rear = q->front=0; } bool Judge(CL &q) { if (q->tag) return true; else return false; } void Enqueue(CL &q,int a) { if (Judge(q)) return; q->Q[q->rear] = a; q->rear = (q->rear +1 ) % maxsize; if ((q->rear + 1) % maxsize == q->front) q->tag = 1; } void Dlqueue(CL &q) { if (!Judge(q)) return; q->front = (q->front + 1) % maxsize; if ((q->front + 1) % maxsize == q->rear) q->tag = 0; } int main() { int n; CL q; while (cin >> n && n != 0) { Init(q); for (int i= 0; i < n; i++) { int a; cin >> a; Enqueue(q, a); } for (int i = q->front; i < q->rear-1; i++) { cout << q->Q[i] << " "; } cout<< q->Q[q->rear-1] << endl; } return 0; }