#include <malloc.h>
#define OK 1
#define ERROR 0
#define OVERFLOW -2
#define MAXQSIZE 20
typedef int QElemType;
typedef struct SqQueue
...{
QElemType *base;
int front;
int rear;
}SqQueue;
//初始化
int InitQueue(SqQueue *Q)
...{
Q->base=(QElemType *)malloc(sizeof(QElemType)*MAXQSIZE);
if(!Q->base)
return OVERFLOW;
Q->front=Q->rear=0;
return OK;
}
//进队列
int EnQueue(SqQueue *Q,QElemType e)
...{
if((Q->rear+1)%MAXQSIZE==Q->front)
return ERROR;
Q->base[Q->rear]=e;
Q->rear=(Q->rear+1)%MAXQSIZE;
return OK;
}
//出队列
int DeQueue(SqQueue *Q,QElemType *e)
...{
if(Q->front==Q->rear)
return ERROR;
*e=Q->base[Q->front];
Q->front=(Q->front+1)%MAXQSIZE;
return OK;
}
//置空
int QueueEmpty(SqQueue Q)
...{
if(Q.front==Q.rear)
return 1;
return 0;
}
本文介绍了使用C语言实现循环队列的方法,并详细解释了队列的初始化、元素入队和出队等基本操作的实现过程。

被折叠的 条评论
为什么被折叠?



