P92、 E7、、
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) cont;
protected:
int front,rear;
Queue_entry entry[maxqueue];
bool is_empty;
};
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=((front+1)==maxqueue)?0:(front+1);
return success;
}
Error_code Queue::retrieve(Queue_entry &item) const {
if(epty())return underflow;
item=entry[front];
returnsuccess;
}