#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;
}
#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;
}