#include<stdio.h>
#include<stdlib.h>
typedef struct QNode
{
int data;
struct QNode *next;
}QNode;
typedef struct LiQueue
{
QNode *front;
QNode *rear;
}LiQueue;
LiQueue intiQueue()
{
LiQueue *lq=(LiQueue *)malloc(sizeof(LiQueue));
if(lq==NULL)
lq->front=NULL;
lq->rear=NULL;
return *lq;
}
int isEmpty(LiQueue *lq)//判断是否为空
{
if(lq->front==NULL || lq->rear==NULL)
{
return 0;
}
else
{
return 1;
}
}
void enQueue(LiQueue *lq,int x)
{
QNode *p;
p=(QNode *)malloc(sizeof(QNode));
p->data=x;
p->next=NULL;
if(lq->rear==NULL)
{
lq->front=p;
lq->rear=p;
}
else
{
lq->rear->next=p;
lq->rear=p;
}
}
int deQueue(LiQueue *lq,int *y)
{
QNode *p=lq->front;
if(lq->rear==NULL || lq->front==NULL)
{
return 0;
}
else
{
lq->front=lq->front->next;
}
*y=p->data;
free(p);
return 1;
}
int printQueue(LiQueue lq)
{
if(lq.front==NULL || lq.rear==NULL)
{
return 0;
}
while(lq.front!=NULL)
{
printf("%d\n",lq.front->data);
lq.front=lq.front->next;
}
return 1;
}
void main()
{
int y=0;
LiQueue lq=intiQueue();
enQueue(&lq,1);
enQueue(&lq,2);
enQueue(&lq,3);
enQueue(&lq,4);
enQueue(&lq,5);
deQueue(&lq,&y);
printQueue(lq);
printf("出队列元素=%d\n",y);
}
链队列 (C语言描述)
最新推荐文章于 2022-11-27 14:02:38 发布