您的位置:首页 > 其它

Exercise 3.3 E7 解答

2013-08-28 19:02 218 查看
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. 

重新编写课本中队列处理的方法,使用一个标志而不是保持队列中元素个数的计数来指示满队列。

解答: 

#include<iostream>

using namespace std;

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; };
Queue :: Queue( ) 

  {rear = maxqueue-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)%maxquene;

  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(empty( ))return underflow; 

  item=entry[front]; 

  return success;} 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: