#include <bits/stdc++.h>
using namespace std;
template<class T>
class que
{
private:
T x;
que *next;
public:
que *head;
int siz;
que(T a, que *b)
{
x=a;next=b;
}
que()
{
head=NULL;
siz=0;
}
~que()
{
clear();
}
bool empty()
{
return siz==0;
}
void push(T &item)
{
if(empty())
{
head=new que<T>(item,NULL);///head是int型指针,new出来的是que型
siz=1;
}
else
{
que *tmp=head;
for(int i=1;i<siz;i++) tmp=tmp->next;
tmp->next=new que<T>(item,NULL);
siz++;
}
}
void pop()
{
if(empty()) return;
T *tmp;tmp=head;
head=head->next;
siz--;
delete tmp;
}
void clear()
{
while(!empty())
{
que *tmp;
tmp=head;
head=head->next;
delete tmp;
siz--;
}
siz=0;
}
void print()
{
que *tmp=head;
for(int i=1;i<=siz;i++)
{
cout<<tmp->x<<endl;
tmp=tmp->next;
if(tmp==NULL)
{
break;
}
}
return;
}
};
using namespace std;
template<class T>
class que
{
private:
T x;
que *next;
public:
que *head;
int siz;
que(T a, que *b)
{
x=a;next=b;
}
que()
{
head=NULL;
siz=0;
}
~que()
{
clear();
}
bool empty()
{
return siz==0;
}
void push(T &item)
{
if(empty())
{
head=new que<T>(item,NULL);///head是int型指针,new出来的是que型
siz=1;
}
else
{
que *tmp=head;
for(int i=1;i<siz;i++) tmp=tmp->next;
tmp->next=new que<T>(item,NULL);
siz++;
}
}
void pop()
{
if(empty()) return;
T *tmp;tmp=head;
head=head->next;
siz--;
delete tmp;
}
void clear()
{
while(!empty())
{
que *tmp;
tmp=head;
head=head->next;
delete tmp;
siz--;
}
siz=0;
}
void print()
{
que *tmp=head;
for(int i=1;i<=siz;i++)
{
cout<<tmp->x<<endl;
tmp=tmp->next;
if(tmp==NULL)
{
break;
}
}
return;
}
};