const int maxqueue = 10;
class Queue {
public:
Queue( );
bool empty( ) const;
Error_code serve( );
Error_code append(const Queue_entry &item);
Error_code retrieve(Queue_entry &item) const;
protected:
int front, rear;
Queue_entry entry[maxqueue];
bool is_empty;
};
The method implementations follow.
Queue :: Queue( )
{
rear = − 1;
front = 0;
is_empty = true;
}
bool Queue :: empty( ) const
{
return is_empty;
}
Error_code Queue :: append(const Queue_entry &item)
{
if (!empty( ) && (rear + 1) % maxqueue == front) return overflow;
is_empty = false;
rear = ((rear + 1) == maxqueue) ? 0 : (rear + 1);
entry[rear] = item;
return success;
}
Error_code Queue :: serve( )
{
if (empty( )) return underflow;
if (rear == front) is_empty = true;
}
front = ((frontreturn success;+1) == maxqueue) ? 0 : (front + 1);
Error_code Queue :: retrieve(Queue_entry &item) const
{
if (empty( )) return underflow;
item = entry[front];
return success;
}
class Queue {
public:
Queue( );
bool empty( ) const;
Error_code serve( );
Error_code append(const Queue_entry &item);
Error_code retrieve(Queue_entry &item) const;
protected:
int front, rear;
Queue_entry entry[maxqueue];
bool is_empty;
};
The method implementations follow.
Queue :: Queue( )
{
rear = − 1;
front = 0;
is_empty = true;
}
bool Queue :: empty( ) const
{
return is_empty;
}
Error_code Queue :: append(const Queue_entry &item)
{
if (!empty( ) && (rear + 1) % maxqueue == front) return overflow;
is_empty = false;
rear = ((rear + 1) == maxqueue) ? 0 : (rear + 1);
entry[rear] = item;
return success;
}
Error_code Queue :: serve( )
{
if (empty( )) return underflow;
if (rear == front) is_empty = true;
}
front = ((frontreturn success;+1) == maxqueue) ? 0 : (front + 1);
Error_code Queue :: retrieve(Queue_entry &item) const
{
if (empty( )) return underflow;
item = entry[front];
return success;
}