????C++?????????????????????

 

#include<iostream>
#include<stack>
using namespace std;
template<class T>
class Node
{
private:
T data;
Node<T>* next;
public:
Node()
{
Node=NULL;
}
Node(T d)
{
data=d;
next=NULL;
}
};
template<class T>
class myqueue
{
private:
Node<T> *tail;
public:
myqueue()
{
tail=new Node<T>();
//tail->next=NULL;
tail->next=tail;  //???????????????????У??????????????????????????????????е?????????
}
bool empty()
{
//return (NULL==tail->next)
return (tail->next==tail);
}
void push(T d)
{
Node<T> *p=new Node<T>(d);
//p->next=NULL;
p->next=tail->next;
tail->next=p;
tail=p;  //??????β????λ??
}
T front()  //????е????????
{
if(empty())
{
cout<<"queue is empty!"<<endl;
exit(0);
}
Node<T> *p=tail->next;  //????????????????????У?β????????????????????
T data=p->next->data;  //???????????????????????????
return data;
}
void pop()  //???е?????????????
{
Node<T> *p=tail->next;
Node<T> *q=p->next;
p->next=q->next;
if(q==tail)
tail=p;
delete q;
q=NULL;
}
};