#include <iostream.h> template<class T> class Node { friend LinkedQueue<T>; private: T data; Node<T> *link; }; template<class T> class LinkedQueue { public: LinkedQueue() {front = rear = 0;} // constructor ~LinkedQueue(); // destructor int IsEmpty() const {return ((front) ? 0 : 1);} T First() const; // return first element T Last() const; // return last element LinkedQueue<T>& Add(const T& x); LinkedQueue<T>& Delete(T& x); private: Node<T> *front; // pointer to first node Node<T> *rear; // pointer to last node }; template<class T> LinkedQueue<T>::~LinkedQueue() {// Queue destructor. Delete all nodes. Node<T> *next; while (front) { next = front->link; delete front; front = next; } } template<class T> T LinkedQueue<T>::First() const { if (IsEmpty()) { cout<<"OutOfBounds()"; return -1; }; return front->data; } template<class T> T LinkedQueue<T>::Last() const { if (IsEmpty()) { cout<<"OutOfBounds()"; return -1; }; return rear->data; } template<class T> LinkedQueue<T>& LinkedQueue<T>::Add(const T& x) { Node<T> *p = new Node<T>; p->data = x; p->link = 0; if (front) rear->link = p; // queue not empty else front = p; // queue empty rear = p; return *this; } template<class T> LinkedQueue<T>& LinkedQueue<T>::Delete(T& x) { if (IsEmpty()) { cout<<"OutOfBounds()"; return *this; }; x = front->data; Node<T> *p = front; front = front->link; delete p; return *this; } void main(void) { LinkedQueue<int> Q; int x; Q.Add(1).Add(2).Add(3).Add(4); cout << "No queue add failed" << endl; cout << "Queue is now 1234" << endl; Q.Delete(x); cout << "Deleted " << x << endl; cout << Q.First() << " is at front" << endl; cout << Q.Last() << " is at end" << endl; Q.Delete(x); cout << "Deleted " << x << endl; Q.Delete(x); cout << "Deleted " << x << endl; Q.Delete(x); cout << "Deleted " << x << endl; cout << "No queue delete failed " << endl; } |
Description :
This is the one stop educational site for all Electronic and Computer students. If you want to learn something new then we are here to help. We work on Microcontroller projects, Basic Electronics, Digital electronics, Computer projects and also in basic c/c++ programs.
#Home #Sitemap #Resources #Terms of Use
Copyright©2012 electrofriends.com All Rights Reserved
Contact:[email protected]
really helpful sir , thnx for the code