队列的操作方式以及队列结构体

Posted qingyunboke

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了队列的操作方式以及队列结构体相关的知识,希望对你有一定的参考价值。

#define SER_BUF_SIZE               (128)  //队列长度
#define SER_BUF_MASK               (SER_BUF_SIZE-1ul)     //用于队列掉头        

#define SER_BUF_RESET(serBuf)      (serBuf.rdIdx = serBuf.wrIdx = 0)  //初始化队列
#define SER_BUF_WR(serBuf, dataIn) (serBuf.data[SER_BUF_MASK & serBuf.wrIdx++] = (dataIn))  //往队列写数据
#define SER_BUF_RD(serBuf)         (serBuf.data[SER_BUF_MASK & serBuf.rdIdx++])  //从队列读数据
#define SER_BUF_EMPTY(serBuf)      (serBuf.rdIdx == serBuf.wrIdx)  //判断队列为空
#define SER_BUF_FULL(serBuf)       (serBuf.rdIdx == serBuf.wrIdx+1)  //判断队列为满
#define SER_BUF_COUNT(serBuf)      (SER_BUF_MASK & (serBuf.wrIdx - serBuf.rdIdx))  //计数队列里的数据个数

 

typedef struct __SER_BUF_T {
  unsigned char data[SER_BUF_SIZE];
  unsigned int wrIdx;
  unsigned int rdIdx;
} SER_BUF_T;    //队列结构体

以上是关于队列的操作方式以及队列结构体的主要内容,如果未能解决你的问题,请参考以下文章

队列(优先队列 结构体)

结构体优先队列的用法

链栈或者链队列为啥需要做两个结构体?

102. 二叉树的层序遍历(队列+BFS+结构体)

数据结构-队列的操作

hdu1873 看病要排队(结构体优先队列)