E7 Rewrite the methods for queue processing from the text ,using a flag to indicate a full queue instead of keeping a count of the entries in the queue
注:重新编写课本中队列处理的方法,使用一个标志而不是保持队列中元素个数的计数来指示满队列。
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;
};
{
rear=-1;
front=0;
is_empty=true;
}
bool Queue::empty()const
{
return is_empty;
}
Error_code Queue::append(const Queue_entry&item)
{
if{empty()}
return underflow;
if{rear==front}is_empty=true;
front=((front+1)==maxqueue)?0:(front+1)
return success;
}
Error_code Queue::retrieve(Queue_entry&item)const;
{
if{empty()}return underflow;
item =entry[front];
return success;
}