/*
队列(用链式存储结构实现)
功能:初始化、入队、出队、遍历、是否为空
*/
#include <stdio.h>
#include <malloc.h>
#define Ele int
typedef struct LinkQueue
{
Ele data;
struct LinkQueue* next;
}LinkQueue;
LinkQueue* NewQueue();
void Push(LinkQueue* LQ, Ele data);
Ele Pop(LinkQueue * LQ);
void Traserval(LinkQueue* LQ);
int IsEmpty(LinkQueue * LQ);
int main()
{
int i;
LinkQueue *LQ = NewQueue();
for(i = 0; i < 20; i ++)
{
Push(LQ, i * 4);
}
for(i = 0; i < 25; i ++)
{
printf("是否为空 %d\n",IsEmpty(LQ));
Pop(LQ);
Traserval(LQ);
}
return 0;
}
//初始化
LinkQueue* NewQueue()
{
LinkQueue* LQ = (LinkQueue*)malloc(sizeof(LinkQueue));
LQ->data = 0;
LQ->next = NULL;
}
//进队
void Push(LinkQueue* LQ, Ele data)
{
int i;
LinkQueue* temp = NewQueue();
temp->data = data;
while(LQ->next != NULL)
{
LQ = LQ->next;
}
LQ->next = temp;
}
//出队
Ele Pop(LinkQueue * LQ)
{
LinkQueue * temp;
Ele data;
if(LQ->next == NULL)
{
return data;
}
temp = LQ->next;
data = temp->data;
LQ->next = temp->next;
free(temp);
return data;
}
//是否为空
int IsEmpty(LinkQueue * LQ)
{
if(LQ->next == NULL)
{
return 1;
}
else
{
return 0;
}
}
//遍历
void Traserval(LinkQueue* LQ)
{
printf("\n");
while(LQ->next != NULL)
{
printf("%d\n", LQ->next->data);
LQ = LQ->next;
}
}
队列(用链式存储结构实现)
最新推荐文章于 2024-04-26 16:20:34 发布