Define a queue
#include <iostream> using namespace std; #define SIZE 100 class QueueClass { int queue[SIZE]; // holds the queue int head, tail; // indices of head and tail public: void init(); // initialize void q(int num); // store int deq(); // retrieve }; void QueueClass::init() { head = tail = 0; } void QueueClass::q(int num) { if(tail+1==head || (tail+1==SIZE && !head)) { cout << "Queue is full\n"; return; } tail++; if(tail == SIZE) tail = 0; // cycle around queue[tail] = num; } int QueueClass::deq() { if(head == tail) { cout << "Queue is empty\n"; return 0; // or some other error indicator } head++; if(head==SIZE) head = 0; // cycle around return queue[head]; } int main() { QueueClass queue1, queue2; int i; queue1.init(); queue2.init(); for(i=1; i <=10; i++) { queue1.q(i); queue2.q(i*i); } for(i=1; i <=10; i++) { cout << "Dequeue 1: " << queue1.deq() << endl; cout << "Dequeue 2: " << queue2.deq() << endl; } return 0; }