#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; } |
ADB commands for Android
Android
What are C Tokens?
C/C++
Least Recently Used Paging Algorithm
Advanced programs
First In First Out Page Replacement Algorithm
Simple programs
Java Program to find the IP address of the Machine
Basic Programs
Palindrome checking using function overloading
Advanced programs
really helpful sir , thnx for the code
HJYU YUJ7YT
it is useful