#include <stdio.h>
#include <stdlib.h>
#define Max 5
typedef struct {
int data[Max];
int rear, front;
}SqQueue;
void InitQueue(SqQueue& Q) {
Q.rear = Q.front = 0;
}
bool EnQueue(SqQueue& Q, int e) {
if ((Q.rear + 1) % Max == Q.front)
return false;
Q.data[Q.rear] = e;
Q.rear = (Q.rear + 1) % Max;
return true;
}
bool DeQueue(SqQueue& Q, int& e) {
if ((Q.rear == Q.front))
return false;
e = Q.data[Q.front];
Q.front = (Q.front + 1) % Max;
return true;
}
bool GetHead(SqQueue Q, int& e) {
if ((Q.rear == Q.front))
return false;
e = Q.data[Q.front];
return true;
}
int main() {
int e;
SqQueue Q;
InitQueue(Q);
EnQueue(Q, 2);
EnQueue(Q, 3);
GetHead(Q, e);
printf("The number is %d\n", e);
DeQueue(Q, e);
printf("The number is %d\n", e);
DeQueue(Q, e);
printf("The number is %d\n", e);
}