2024-04-03 10:05:55 +08:00

41 lines
1.3 KiB
C

#include "queue.h"
xdata SqQueue ntcQueue;
/***************************************************************************************
* @说明 初始化队列
* @参数 队列q
* @返回值 无
* @注 无
***************************************************************************************/
void InitQueue(SqQueue *Q) {
Q->front = Q->rear = 0;
}
/***************************************************************************************
* @说明 入队
* @参数 队列q 入队数据
* @返回值 无
* @注 无
***************************************************************************************/
void EnQueue(SqQueue *Q, u16 val) {
if ((Q->rear + 1) % MAXIZE == Q->front)
DeQueue(Q); // 用来保证队列满的时候,数组仍留出一个空闲空间 判断队满后出队一个 然后再让数据入队
Q->base[Q->rear] = val;
Q->rear = (Q->rear + 1) % MAXIZE;
}
/***************************************************************************************
* @说明 出队
* @参数 队列q
* @返回值 无
* @注 无
***************************************************************************************/
void DeQueue(SqQueue *Q) { // 出队
if (Q->front == Q->rear)
return; // 队中没有数据
else
Q->front = (Q->front + 1) % MAXIZE;
}