linkquene<t1>::linkquene()
{qsize=0;head=tail=NULL;}
//清队函数
template<class t1>
void linkquene<t1>::clear()
{ t1 x;
while(popfront(x));
head=tail=NULL;
}
//进队函数
template<class t1>
void linkquene<t1>::pushtail(t1 &x)
{quenenode<t1> *p;
p=new quenenode<t1>;
assert(p);
p->data=x;
if(tail)
{
p->next=NULL;
tail->next=p;
tail=p;
}
else
{
p->next=NULL;
tail=p;head=p;
}
qsize++;}
//出队函数
template<class t1>
bool linkquene<t1>::popfront(t1&x)
{quenenode<t1> *p;
if(head)
{x=head->data;
p=head;
head=head->next;
if(head==NULL)
tail=NULL;
delete p;
qsize--;
return true;}
else
return false;}