struct Queue {
int data[MaxSize];
int front;
int rare;
//可额外添加num变量记录队列中元素个数
}SqQueue;
初始化
void InitQueue(Queue& Q) {
Q.front = 0;
Q.rare = 0;
}
判断队列是否为空
bool Empty(Queue& Q) {
if (Q.front == Q.rare) return true;
return false;
}
返回队头
bool GetFront(Queue& Q,int &x) {
if (Q.front == Q.rare) return false;
x= Q.data[Q.front];
return true;
}
入队
bool EnQueue(Queue& Q,int x) {
if ((Q.rare + 1) % MaxSize == Q.front) return false;
Q.data[Q.rare++] = x;
Q.rare = Q.rare % MaxSize;
return true;
}
出队
bool DeQueue(Queue& Q,int &x) {
if (Q.front == Q.rare) return false;
x = Q.data[Q.front];
Q.front = (Q.front + 1) % MaxSize;
return true''
}