#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++ 环形队列)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/cjjbc/17980.html