队列
队列同栈一样,也是一种特殊的线性表。主要特性是先进先出。
主要函数包括:入列、出列、清空等
主要代码如下:
//测试队列的数据结构 #include <iostream> using namespace std; template <class T> class squeuenode { public: squeuenode(){next=NULL;} T data; squeuenode<T> *next; }; template <class T> class Myqueue { public: unsigned int squeuelength; squeuenode <T>*node; squeuenode <T>*rear; squeuenode <T>*front; public: Myqueue(); unsigned int length(); void push(T x); bool isempty(); void pop(); T getHead(); }; template <class T> Myqueue<T>::Myqueue() { squeuelength=0; rear=NULL; front=NULL; node=NULL; } template <class T> unsigned int Myqueue<T>::length() { return squeuelength; } //添加 template <class T> void Myqueue<T>::push(T x) { node=new squeuenode<T>(); node->data=x; node->next=NULL; if (front==NULL) { front=node; rear=front; } else { rear->next=node; rear=node; } squeuelength++; } template <class T> bool Myqueue<T>:: isempty() { if (0==squeuelength) { return true; } else return false; } template <class T> void Myqueue<T>::pop() { if (squeuelength==0) { return; } if (front==rear) { node=front; front=rear=NULL; delete(node); node=NULL; } else { node=front; front=node->next; delete(node); node=NULL; } squeuelength--; } template <class T> T Myqueue<T>::getHead() { if (squeuelength==0) { cout<<"现在没有任何数据"<<endl; exit(0); } T x; x=front->data; return x; }