#define MaxSize 10 //定义队列中元素的最大个数
typedef struct{
int data[MaxSize]; //用静态数组存放队列元素
int front,rear; //队头指针和队尾指针
}SqQueue;
//初始化队列
void InitQueue(SqQueue &Q){
Q.rear = Q.front = 0; //初始化队头、队尾指针指向0
}
//判断队列是否为空
bool QueueEmpty(SqQueue Q){
if(Q.rear == Q.front)
return true;
else
return false;
}
//入队
bool EnQueue(SqQueue &Q, int x){
if((Q.rear+1)%MaxSize == Q.front) //(牺牲一个单元来区分队空和队满)
return false; //队满则报错
Q.data[Q.rear] = x; //将x插入队尾
Q.rear = (Q.rear+1)%MaxSize; //队尾指针后移
return true;
}
//出队
bool DeQueue(SqQueue &Q, int &x){
if(Q.rear == Q.front)
return false; //队空则报错
x = Q.data[Q.front];
Q.front = (Q.front+1)%MaxSize;
return true;
}
//读队头元素,用x返回
bool GetHead(SqQueue Q, int &x){
if(Q.rear == Q.front)
return false;
x = Q.data[Q.front];
return true;
}
void testQueue(){
SqQueue Q; //声明一个队列(顺序存储)
InitQueue(Q);
//...后续操作...
}