链队

来源:互联网 发布:软件迭代记录 编辑:程序博客网 时间:2024/06/05 07:12
#include <iostream>using namespace std;template <class T>struct Node{T data;Node<T> *next;};template <class T>class LinkQueue{public:LinkQueue();~LinkQueue();void enqueue(T x);T dequeue();T getqueue();int empty();private:Node<T> *front,*rear;};template <class T>LinkQueue<T>::LinkQueue(){Node<T>*s=NULL;s=new Node<T>;s->next=NULL;front=rear=s;}template <class T>LinkQueue<T>::~LinkQueue(){Node<T>*p=NULL;while(front!=NULL){p=front->next;delete front;front=p;}}template <class T>void LinkQueue<T>::enqueue(T x){Node<T>*s=NULL;s=new Node<T>;s->data=x;s->next=NULL;rear->next=s;rear=s;}template <class T>T LinkQueue<T>::dequeue(){Node<T>*p=NULL;int x;if(rear==front)throw"上溢";p=front->next;x=p->data;front->next=p->next;if(p->next==NULL)rear=front;delete p;return x;}template <class T>T LinkQueue<T>::getqueue(){if(front!=rear)return front->next->data;}template <class T>int LinkQueue<T>::empty(){if(front==rear)return 1;else return 0;}void main(){LinkQueue<int> s;if(s.empty())cout<<"空"<<endl;else cout<<"非空"<<endl;cout<<"1,2,3入队"<<endl;s.enqueue(1);s.enqueue(2);s.enqueue(3);cout<<"队头:"<<endl;cout<<s.getqueue()<<endl;cout<<"1出队"<<endl;s.dequeue();cout<<"队头:"<<endl;cout<<s.getqueue()<<endl;}

原创粉丝点击