#include<stdio.h>
#define MaxSize 10
typedef struct {
int data[10];
int front,rear; //rear始终指向下一个需要添加元素的位置
} SqQuene;
//初始化一个队列
void InitQuene(SqQuene *Q)
{
Q->front = Q->rear = 0;
}
//判断队列是否为空
bool isEmpty(SqQuene *Q)
{
if (Q->front = Q->rear )
return true;
else
return false;
}
//入队
bool EnQuene(SqQuene *Q,int x)
{
if ((Q->rear+1)%MaxSize == Q->front )
return false; //队列满了 还可添加一个size记录队列长度当size等于Maxsize是满 或者添加tag
Q->data[Q->rear] = x;
Q->rear = (Q->rear +1)%MaxSize; //相当于在MaxSize中循环了
return true;
}
//出队
bool DeQuene(SqQuene *Q,int *x)
{
if (Q->front = Q->rear ) //初始是指向同一个位置则代表队空
return false;
*x = Q->data[Q->front];
Q->front=(Q->front + 1)%MaxSize;
return true;
}
//计算队列长度
int Length(SqQuene *Q)
{
int l;
l = (Q->rear + MaxSize - Q->front )%MaxSize;
return l;
}
int main()
{
int x;
int s;
SqQuene *Q;
InitQuene(Q);
isEmpty(Q);
EnQuene(Q,x);
DeQuene(Q,&s);
return 0;
}
循环队列 C语言
最新推荐文章于 2024-08-16 21:07:50 发布