#include <iostream>
#include <deque>
using std::cout;
using std::endl;
using std::deque;
#define SIZE 30
class CQueue {
int queue[SIZE];
int ihead, itail;
public:
CQueue();
void push(int n);
int pop();
};
CQueue::CQueue() {
ihead = itail = 0;
}
void CQueue::push(int n) {
if (itail + 1 == SIZE) {
cout << "Queue is full" << endl;
return;
}
itail++;
if (itail == SIZE) itail = 0;
queue[itail] = n;
}
int CQueue::pop()
{
if (ihead == itail) {
cout << "Queue is empty" << endl;
return -1;
}
ihead++;
if (ihead == SIZE) ihead = 0;
return queue[ihead];
}
int main()
{
CQueue q;
for (int i = 1; i <= 6; i++) {
q.push(i);
}
for (int i = 1; i <= 6; i++) {
cout << q.pop() << ' ';
}
cout << endl;
return 0;
}
/*
run:
1 2 3 4 5 6
*/