#include <stdio.h>
#include <stdlib.h>
#define MAXQSIZE 100
#define OK 1
#define ERROR 0
#define FALSE 0
#define TRUE 1
typedef struct elem {
int n;
}elem;
typedef struct {
elem* base;
int front;
int rear;
}SqQueue;
int InitQueue(SqQueue &Q) {
Q.base =(elem*) malloc(sizeof(elem)*MAXQSIZE);
if (Q.base == NULL) return ERROR;
Q.front = 0;
Q.rear = 0;
return OK;
}
int LengthQueue(SqQueue &Q) {
return Q.front <= Q.rear ? Q.rear - Q.front : MAXQSIZE - (Q.front - Q.rear);
}
int EmptyQueue(SqQueue &Q) {
if (Q.front == Q.rear) return TRUE;
return FALSE;
}
int AddQueue(SqQueue &Q, elem e) {
if (Q.base == NULL || (Q.rear+1)%MAXQSIZE==Q.front) return ERROR;
*(Q.base + Q.front) = e;
Q.rear = (Q.rear + 1) % MAXQSIZE;
return OK;
}
int DeleteQueue(SqQueue &Q, elem* e) {
if (Q.front == Q.rear || Q.base == NULL) return ERROR;
*e = *(Q.base + Q.rear);
Q.rear = (Q.rear + 1) % MAXQSIZE;
return OK;
}
int GetHead(SqQueue &Q, elem* e) {
if (Q.base == NULL || Q.front == Q.rear) return ERROR;
*e = *(Q.base + Q.front);
return OK;
}
int main()
{
return 0;
}