当前位置:网站首页 > C++编程 > 正文

环形队列c++实现(c++ 环形队列)



#include <stdlib.h> #include <stdio.h> #include "Queue.h" /***/ /***/ /**创建队列*/ /***/ /***/ uint8_t Queue_Init(Queue* queue,int size) { queue->iSize = size; queue->iLength = 0; queue->iTail=0; queue->iHead=0; queue->Datas = (Elem *)malloc(size*sizeof(Elem)); return 1; } /***/ /***/ /**删除队列*/ /***/ /***/ uint8_t Queue_Delete(Queue *queue) { free(queue->Datas); return 1; } /***/ /***/ /*队头队尾操作**/ /***/ /***/ static void QueueTailAdd(Queue *queue) { queue->iTail++; queue->iTail = queue->iTail % queue->iSize; } static void QueueHeadAdd(Queue *queue) { queue->iHead ++; queue->iHead = queue->iHead % queue->iSize; } /***/ /***/ /*队列判空**/ /***/ /***/ uint8_t isQueueEmpty(Queue *queue) { if(queue->iLength == 0) { return 1; } return 0; } /***/ /***/ /*队列判满**/ /***/ /***/ uint8_t isQueueFull(Queue *queue) { if(queue->iLength>=queue->iSize) { return 1; } return 0; } /***/ /***/ /*返回队列现有长度**/ /***/ /***/ int Queue_size(Queue *queue) { return queue->iLength; } /***/ /***/ /**往队尾放入元素*/ /***/ /***/ uint8_t Queue_push(Queue *queue,Elem data) { if(isQueueFull(queue)) { return 0; } queue->Datas[queue->iTail] = data; QueueTailAdd(queue); queue->iLength++; return 1; } /***/ /***/ /**获取队头第一个元素(不删除)*/ /***/ /***/ Elem Queue_front(Queue *queue) { if(isQueueEmpty(queue)) { return 0; } return queue->Datas[queue->iHead]; } Elem Queue_back(Queue *queue) { if(isQueueEmpty (queue)) { return 0; } return queue->Datas[queue->iTail]; } /***/ /***/ /**删除队列第一个元素*/ /***/ /***/ uint8_t Queue_pop(Queue *queue) { if(isQueueEmpty(queue)) { return 0;//queue empty  } QueueHeadAdd(queue); queue->iLength--; return 1; } /***/ /***/ /*打印队列中的全部元素**/ /***/ /***/ void Queue_printf(Queue *queue) { int i; int temp = queue->iHead; printf("queue datas: "); for(i=0;i<queue->iLength;i++) { printf("%d ",queue->Datas[temp++%queue->iSize]); } printf(" "); }
到此这篇环形队列c++实现(c++ 环形队列)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • can通讯接口(CAN通讯接口 ON OFF)2025-11-09 08:00:07
  • cp1e如何连接电脑(cpe怎么连接电脑)2025-11-09 08:00:07
  • dbf文件怎么转换成excel(dbf文件怎么转换成shp)2025-11-09 08:00:07
  • dap贸易术语(dap贸易术语和CIf的区别)2025-11-09 08:00:07
  • tcpip工具包(tcpip工具包下载)2025-11-09 08:00:07
  • pointcnn代码(pointnet代码运行)2025-11-09 08:00:07
  • 字符串转unicode编码方法(字符串转换成unicode编码)2025-11-09 08:00:07
  • cmip6降尺度流程图(cmip6降水)2025-11-09 08:00:07
  • tomcate乱码(tomcat部分乱码)2025-11-09 08:00:07
  • 合并有序数组c++语言(合并有序数组 复杂度)2025-11-09 08:00:07
  • 全屏图片