#include #include #include #include #include #include #include #include #include #include #include using namespace std; int const N = 20; struct queue { int A[N]; // N is a constant large enough to prevent false overflow int rear = 0; int front = 0; // initially the queue is empty }; void enqueue(queue&q,int newitem) // inserts newitem into q { if(q.rear > N-1) cout << "False overflow." << endl; q.A[q.rear] = newitem; q.rear++; } bool empty(queue&q) // returns true if q is empty, false otherwise { return q.rear == q.front; } int dequeue(queue&q) // returns an item from q and deletes that item { assert(not empty(q)); // error if you try to dequeue from an empty queue int rslt = q.A[q.front]; q.front++; return rslt; } int main() { queue q; enqueue(q,5); enqueue(q,3); enqueue(q,2); while (not empty(q)) cout << dequeue(q) << " "; return 1; }