All pastes #1651607 Raw Edit

Mine

public cpp v1 · immutable
#1651607 ·published 2009-11-01 15:43 UTC
rendered paste body
#include <iostream>using namespace std;class Queue{	private:		struct Node		{			Node (int data, Node* next) :				mydata(data), mynext(next) {}			int mydata;			Node *mynext;		};	public:		Queue() : myfront(NULL), myback(NULL) {}		~Queue();		int front() const;		int back() const;		bool is_empty() const;		void enqueue(const int);		void dequeue();		void Filter(int);		void callFilter(); //Calles the filter function		private:		Node* myfront;		Node* myback;	};/* Implementation of member functions */Queue :: ~Queue(){	if (myfront == NULL) return;	for (Node *p = myfront->mynext; p; p=p->mynext)		delete myfront;}int Queue :: front() const{    return myfront->mydata;}int Queue :: back () const{    return myback->mydata;}bool Queue :: is_empty () const{     return bool(myfront == NULL);}void Queue::callFilter(){     int value, count;     count = 0;     cout << "Please enter the value that you wish to search for(anything other than 0: ";     cin >> value;     while (count < 10)		if (value > 0) {			Filter(value);			break;		}		else { 			cout << "Please enter a new value you have " << 10-count << " chances left: ";			cin >> value;			count++;		}}	void Queue::Filter(int A) {  int B, C, count;  Node *p=myback;  B=front();  C=B; // to remeber the first value  // cout<<B<<endl;  // cout<<C<<endl;  cout << A << endl;    while(A != front()) {	p=p->mynext;	int d=myfront->mydata;	delete myfront;	myfront=p;//the dequeue	if (front()==A)		break;		Node *p=new Node(B, NULL);//the enqueue		if (myback == NULL){		myback=p;		myfront=p;	}	else {		p->mynext=myback;		myback=p;	}		B=front();		if(front()==C)	  	  break;		dequeue();               	}		while(front()!=C)	{               		p=p->mynext;		B=myfront->mydata;		delete myfront;		myfront=p;		enqueue(B);  		B=front();					 	}}void Queue :: enqueue(const int d){     Node *p=new Node(d, NULL);     if (myback == NULL){		myback=p;		myfront=p;	}	else {		p->mynext=myback;		myback=p;	}		cout<<"Item entered into the queue: "		<<myback->mydata<<endl;}void Queue :: dequeue(){	Node *p=myback;	if (is_empty())		cout << "Queue empty: Nothing to delete"<<endl;	else {		if (myback==myfront){			cout<<"Item removed from queue: "				<<myback->mydata<<endl;			delete myback;			myback=NULL;			myfront=NULL;		}		while(p->mynext != myfront)			p=p->mynext;				int d=myfront->mydata;				cout << "Item removed from queue: " << d << endl;		delete myfront;		myfront=p;	}}main() /* A test-drive for queue */{       Queue q;       q.enqueue(45);       q.enqueue(56);       q.enqueue(32);              q.enqueue(89);        q.enqueue(12);             q.callFilter();       q.dequeue();       q.dequeue();       q.dequeue();       q.dequeue();       q.dequeue();}