配置:rear指向队尾元素 front的下一个位置为队头元素
#include<stdio.h>
#define MAXSIZE 100
结构体定义
typedef struct LNode
{
int data[MAXSIZE];
int front,rear;
}LNode;
队列初始化
void init(LNode &L)
{
L.front=0;
L.rear=0;
}
元素入队
void enqueue(LNode &L,int x)
{
L.rear=(L.rear+1)%MAXSIZE;
L.data[L.rear]=x;
printf("%d入队\n",L.data[L.rear]);
}
元素出队
void outqueue(LNode &L)
{
L.front=(L.front+1)%MAXSIZE;
int x=L.data[L.front];
printf("出队元素为%d",x);
}
判空
int isEmpty(LNode L)
{
if(L.front==L.rear)
{
printf("队列为空');
return 0;
}
else
{
printf("队列不空");
return 1;
}
}
取队首元素
void head(LNode &L)
{
int p;
p=(L.front+1)%MAXSIZE;
int x=L.data[p];
printf("当前队首元素为%d",x);
}
应用
void main()
{
LNode L;
init(L);
int n;
printf("请输入入队元素个数:\t",n);
scanf("%d",&n);
for(int i=0;i<n;i++)
{
int x;
scanf("%d",&x);
enqueue(L,x);
}
outqueue(L);
head(L);
}