链式队列就是采用链式存储结构存储队列,其采用单链表来实现。一个链队列需要两个分别指向队头和队尾的指针(front和rear)。在什么情况下使用链式队列和顺序队列呢?当一个应用程序同时使用多个队列时,采用链式队列比较好,而当只有一个队列时,使用顺序队列比较好。插入和删除元素即为链式队列的主要操作对象。
一、链式队列插入操作
(1)图例:
(2)算法代码:
void LQueueInsert(LinkedQueue *lqu,in x)
{
LQNode *p
p=(LQNode *)malloc(sizeof(LQNode));
p->data=x;
p->next=NULL;
if(lqu->rear==null)
lqu->front=lqu->rear=p;
else
{
lqu->rear->next=p;
lqu->rear=p
}
}
二、链式队列删除操作
(1)图例:
(2)算法代码:
int LQueueDelete(LinkedQueue *lqu,int &x)
{
LQNode *p;
if(lqu->rear==NULL)
return 0;
else
{
p=lqu->front;
x=p->data;
lqu->front=lqu->front->next;
free(p);
}
return 1;
}
还没有评论,来说两句吧...