InitQueue(&Q) :初始化队列,构造一个空队列Q
QueueEmpty(Q) :判队列空,若队列为空返回true,否则false
EnQueue(&Q,x) :入队,若队列Q未满,将x加入,使之成为新的队尾
DeQueue(&Q,&x):出队,若队列Q非空,删除队头元素,并用x返回
GetHead(Q,&x) :读队头元素,若队列Q非空,则将队头元素赋值给x
初始状态(队空):Q.front=Q.rear=0
进队操作 :队不满时,先送值到队尾元素,再将队尾指针加1
出队操作 :队非空时,先取队头元素值,再将对头指针加1
初始时:Q.front=Q.rear=0
队首指针进1:Q.front=(Q.front+1)%MaxSize
队尾指针进1:Q.rear=(Q.rear+1)%MaxSize
队列长度:(Q.rear+MaxSize-Q.front)%MaxSize
出队入队时:指针都按顺时针方向进1
数组实现
//队列操作
#include<stdio.h>
#define MaxSize 50
#define Elemtype int
typedef struct{
Elemtype data[MaxSize];
int front,rear;//队