📄 queue.c
字号:
#include "Message.h"
#include "Queue.h"
void SetQueue(S_Queue* pQueue,S_Mes* mesaddr,int n);
void ClearQueue(S_Queue* pQueue);
/*-------------------------构造函式。建立数组长度为n的空队列-------------------------------------------------*/
void SetQueue(S_Queue* pQueue,S_Mes* mesaddr,int n)
{
pQueue->data=mesaddr;
pQueue->max=n;
pQueue->front=0;
pQueue->rear=0;
pQueue->size=0;
ClearQueue(pQueue);
}
/*---------------------------------判空。为空返回true---------------------------------------------------------*/
unsigned char QueueEmpty(S_Queue* pQueue)
{
if(pQueue->size==0)
return true;
else return false;
}
/*-------------------------------------判满。为满返回true-----------------------------------------------------*/
unsigned char QueueFull(S_Queue* pQueue)
{
if(pQueue->size==pQueue->max)
return true;
else return false;
}
/*-----------------------------------求队列长度----------------------------------------------------------------*/
int QueueSize(S_Queue* pQueue)
{
return (pQueue->size);
}
/*--------------------------------------入队-------------------------------------------------------------------*/
void QueuePutMessage(S_Queue* pQueue,S_Mes mes)
{
if(QueueFull(pQueue)) return;
pQueue->data[pQueue->rear]=mes;
pQueue->rear=(pQueue->rear+1)%(pQueue->max);
pQueue->size++;
}
/*-------------------------------------出队---------------------------------------------------------------------*/
S_Mes QueueGetMessage(S_Queue* pQueue)
{
S_Mes mes;
if(pQueue->size>0)
{
mes=pQueue->data[pQueue->front];
pQueue->front=(pQueue->front+1)%(pQueue->max);
pQueue->size--;
return mes;
}
return mes;
}
/*------------------------------------清队列--------------------------------------------------------------------*/
void ClearQueue(S_Queue* pQueue)
{
pQueue->front=0;
pQueue->rear=0;
pQueue->size=0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -