Define a queue : Queue « Data Structure « C++






Define a queue

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;
}


           
       








Related examples in the same category

1.Queue: push and popQueue: push and pop
2.Demonstrate the queue class: push, front, empty and popDemonstrate the queue class: push, front, empty and pop
3.Cycling through a queue.Cycling through a queue.
4.Define our own Queue classDefine our own Queue class
5.Your own Queue classYour own Queue class