实验之链队列

实验目的:

熟练应用链队列,并应用于实际应用中,通彻链队列的原理,编写代码,并成功实现。


实验代码:

头文件:

template<class T>
class Node{
public:
 T data;
 Node<T> *prior,*next;
};

template<class T>
class LinkQueue{
public:
 LinkQueue();
 void EnQueue();
 T DeQueue();
 T GetQueue();
 int empty(){if (front==rear) return 1; else return 0;}
private:
 Node<T> *front,*rear;};


源文件:

#include"tou.h"
#include <iostream>
using namespace std;
template <class T>
LinkQueue<T>::LinkQueue(){
 Node<T> *s=new Node<T>;
 s->next=NULL;
 front=rear=s;
}

template<class T>
void LinkQueue<T>::EnQueue(){
 T x;
 cin>>x;
 Node<T> *s=new Node<T>;
 s->data=x;
 s->next=NULL;
 rear->next=s;
 rear=s;
}
template <class T>
T LinkQueue<T>::DeQueue(){
 T x; Node<T> *p=new Node<T>;
 if(rear==front) throw"over";
 p=front->next; x=p->data;
 front->next=p->next;
 if(p->next=NULL) rear=front;
 delete p;
 return x;
}

扫描二维码关注公众号,回复: 5792812 查看本文章

void main(){
 LinkQueue<int>x;
 int i,n;
 cout<<"please input the number"<<endl;
 cin>>n;
 for(i=1;i<=n;i++){
  x.EnQueue();
 }
 cout<<x.empty()<<endl;
 
 for(i=1;i<=n;i++){
  cout<<x.DeQueue()<<endl;
 }
 system("pause");
}


实验结果:


实验总结:

链队列是在单链表的基础上做了简单的修改,为了使空队列和非空队列的操作一致,链队列也设立头结点,

除析构函数外,算法时间复杂度均为1,




猜你喜欢

转载自blog.csdn.net/Lxin12138/article/details/78324732