apply stack and Queue symbol

64页 E2(b)

#include<stack> #include<iostream> using namespace std; Error_code copy_stack(Stack&dest,Stack&source) {  Error_code outcome=success;  Stack temp;  Stack_entry item;  while(outcome==success&&!source.empty()){   outcome=source.top(item);   outcome=source.pop();   if(outcome==success)outcome=temp.push(item);  }  while(outcome==success&&!temp.empty()){   outcome=temp.top(item);   outcome=temp.pop();   if(outcome==success)outcome=source.push(item);   if(outcome==success)outcome=dest.push(item);  }  return outcome; }

92页 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)const; 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::retrieve(Queue_entry &item)const {  if(empty())return underflow;  item=entry[front];  return success; }

 

 

 

 

 

 

 

posted @ 2013-08-29 12:35  刘颖斌  阅读(177)  评论(0)    收藏  举报