PLinkQueue createEmptyQueue_link(void){
PLinkQueue plqu;
plqu=(PLinkQueue)malloc(sizeof(Struct LinkQueue));
if(plqu!=NULL){
plqu->f=NULL;
plqu->r=NULL;
}
else printf("Out of space!!\n");
return(plqu);
}



int isEmptyQueue_link(PLinkQueue plqu)
{
return (plqu->f==NULL);
}




void deQueue_link(PLinkQueue plqu)
{PNode p;
if(plqu->f==NULL)printf("Empty queue.\n");
else {
p=plqu->f;
plqu->f=p->link;
free(p);
}
}




void enQueue_link(PLinkQueue plqu,DataType x)
{
PNode p;
p=(PNode)malloc(sizeof(struct Node));
if(p==NULL)printf("out of space !");
else {
p->info=x;
p->link=NULL;
if(plqu->f==NULL)plqu->f=p;
else plqu->r->link=p;
plqu->r=p;
}
}


DataType frontQueue_link(PLinkQueue plqu)
{
if(plqu->f==NULL)printf("Empty queue\n");else return (plqu->f->info);
}