初始化队列的函数:
void init_lkqueue(lkqueue *lq)
{
pointer node;
node=(pointer)malloc(sizeof(*node));
if(!node)
return;
lq->fron=lq->rear=node;
node->next=NULL;
}
判断队列是否为空:
int empty_lkqueue(lkqueue *lq)
{
if(lq->rear==lq->fron)
return 1;
return 0;
}
int gethead_lkqueue(lkqueue *lq,datatype *data)
{
pointer node;
node=lq->fron->next;
*data=node->data;
return 1;
}
入队:
int en_lkqueue(lkqueue *lq,datatype data)
{
pointer node;
node=(pointer)malloc(*node);
if(!node)
return -1;
lq->rear->next=node;
node->data=data;
lq->rear=node ;
return 1;
}
出队:
int de_lkqueue(lkqueue *lq,datatype *data)
{
pointer node;
if(lq->fron==lq->next)
return -1;
node=lq->fron;
*data=node->next->data;
lq->fron=node->next;
if(node)
free(node);
return 1;
}