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; }
浙公网安备 33010602011771号