typedef int ElemType;
#define MaxSize 50
//定义头节点
typedef struct {
ElemType data[MaxSize];
int front, rear;
}SqQueue;
//初始化
void InitQueue(SqQueue& Q) {
Q.front = Q.rear = 0;
}
//判空
bool QueueEmpty(SqQueue Q) {
if (Q.front == Q.rear) return true;
else return false;
}
//判满
bool QueueFull(SqQueue Q) {
if ((Q.rear + 1) % MaxSize == Q.front) return true;
else return false;
}
//入队
bool EnQueue(SqQueue& Q, ElemType x) {
if ((Q.rear + 1) % MaxSize == Q.front) return false; //入队判队满
Q.data[Q.rear] = x;
Q.rear = (Q.rear + 1) % MaxSize;
return true;
}
//出队
bool DeQueue(SqQueue& Q, ElemType& x) {
if (Q.front == Q.rear) return false; //出队判队空
x = Q.data[Q.front];
Q.front = (Q.front + 1) % MaxSize;
return true;
}
数组实现顺序存储的循环队列
于 2024-08-08 22:30:47 首次发布