#include <stdio.h>
#define MaxSize 10
//用顺序存储定义队
typedef struct {
ElemType data[MaxSize];
int front, rear; //队头队尾指针
int tag = 0; //区分是队满还是空
} sqQueue;
void InitQueue(sqQueue &Q) {
Q.rear = 0;
Q.front = 0;
}
//判空
bool QueueEmpty(sqQueue &Q) {
if (Q.rear == Q.front && Q.tag == 0)
return ture;
else
return false;
}
//入队
//第一种
bool EnQueue(sqQueue &Q, ElemType x) {
if ((Q.rear + 1) % MaxSize == Q.front && Q.tag == 1)
return false;
else
Q.data[Q.rear] = x;
Q.rear = (Q.rear + 1) % MaxSize;
tag = 1;
}
//第二种
//void InitQueue(sqQueue &Q)
//{
// Q.rear=n-1;
// Q.front=0;
//
//}
//bool EnQueue(sqQueue &Q,ElemType x){
// if((Q.rear+1)%MaxSize==Q.front)
// return false;
// else
// Q.rear=(Q.rear+1)%MaxSize;
// Q.data[Q.rear]=x;
//
//}
//出队
bool DeQueue(sqQueue &Q, ElemType &x) {
if (QueueEmpty(sqQueue & Q) == true)
return false;
else
x = Q.data[Q.front];
Q.front = (Q.front + 1) % MaxSize;
return true;
tag = 0;
}
//查
bool GetHead(sqQueue &Q, ElemType &x) {
if (QueueEmpty(sqQueue & Q) == true)
return false;
x = Q.data[Q.front];
return true;
}
int main(void) {
sqQueue Q;
InitQueue(Q);
return 0;
}