Queue.h 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. /*********************************************************************************************************
  2. * 模块名称:Queue.h
  3. * 摘 要:Queue模块
  4. * 当前版本:1.0.0
  5. * 作 者:Leyutek(COPYRIGHT 2018 - 2021 Leyutek. All rights reserved.)
  6. * 完成日期:2021年07月01日
  7. * 内 容:
  8. * 注 意:
  9. **********************************************************************************************************
  10. * 取代版本:
  11. * 作 者:
  12. * 完成日期:
  13. * 修改内容:
  14. * 修改文件:
  15. *********************************************************************************************************/
  16. #ifndef _QUEUE_H_
  17. #define _QUEUE_H_
  18. /*********************************************************************************************************
  19. * 包含头文件
  20. *********************************************************************************************************/
  21. /*********************************************************************************************************
  22. * 宏定义
  23. *********************************************************************************************************/
  24. /*********************************************************************************************************
  25. * 枚举结构体
  26. *********************************************************************************************************/
  27. //定义数据类型,即队列中元素的数据类型
  28. typedef unsigned char DATA_TYPE;
  29. //定义循环队列结构体
  30. typedef struct
  31. {
  32. short front; //头指针,队非空时指向队头元素
  33. short rear; //尾指针,队非空时指向队尾元素的下一个位置
  34. short bufLen; //队列的总容量
  35. short elemNum; //当前队列中的元素的数量
  36. DATA_TYPE *pBuffer; //循环队列的缓冲区
  37. }StructCirQue;
  38. /*********************************************************************************************************
  39. * API函数声明
  40. *********************************************************************************************************/
  41. void InitQueue(StructCirQue* pQue, DATA_TYPE* pBuf, short len); //初始化队列
  42. void ClearQueue(StructCirQue* pQue); //清队列
  43. unsigned char QueueEmpty(StructCirQue* pQue); //判断队列是否为空,1为空,0为非空
  44. short QueueLength(StructCirQue* pQue); //返回队列中元素个数,即为队列的长度
  45. short EnQueue(StructCirQue* pQue, DATA_TYPE* pInput, short len); //入队len个元素
  46. short DeQueue(StructCirQue* pQue, DATA_TYPE* pOutput, short len); //出队len个元素
  47. #endif