#define MAXSIZE 100
typedef struct {
int *base;//循环队列的存储空间,假设队列中存放的是整型数
int front;//指示队头,称为队头指针
int rear;//指示队尾,称为队尾指针
}SqQueue;
//创建一个空队列,成功返回0,失败返回-1
int InitQueue(SqQueue *Q)
{
Q->base = (int*)malloc(MAXSIZE * sizeof(int));
if(!Q->base){
return -1;
}
Q->front = 0;
Q->rear = 0;
return 0;
}
//元素入循环队列
int EnQueue(SqQueue *Q,int e)
{
int rear = (Q->rear+1) % MAXSIZE;
if(rear == Q->front){//队列满了
return -1;
}
Q->base[Q->rear] = e;
Q->rear = rear;
return 0;
}
//元素出循环队列,删除队头元素,参数e带回其值
int DelQueue(SqQueue *Q,int *e)
{
if(Q->front == Q->rear){//队列为空
return -1;
}
*e = Q->base[Q->front];
Q->front = (Q->front + 1) % MAXSIZE;
return 0;
}
数据结构——循环队列操作代码实现
猜你喜欢
转载自blog.csdn.net/JuicyActiveGilbert/article/details/100619375
今日推荐
周排行