#include <stdlib.h> #include <stdio.h> #include “Queue.h”/**/ /*/ /创建队列*/ /*/ // uint8_t Queue_Init(Queue* queue,int size) {讯享网queue</span>->iSize =<span style="color: rgba(0, 0, 0, 1)"> size; queue</span>->iLength = <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">; queue</span>->iTail=<span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">; queue</span>->iHead=<span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">; queue</span>->Datas = (Elem *)<span style="color: rgba(0, 0, 255, 1)">malloc</span>(size*<span style="color: rgba(0, 0, 255, 1)">sizeof</span><span style="color: rgba(0, 0, 0, 1)">(Elem)); </span><span style="color: rgba(0, 0, 255, 1)">return</span> <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">;} /**/ /*/ /删除队列*/ /*/ // uint8_t Queue_Delete(Queue *queue) {</span><span style="color: rgba(0, 0, 255, 1)">free</span>(queue-><span style="color: rgba(0, 0, 0, 1)">Datas); </span><span style="color: rgba(0, 0, 255, 1)">return</span> <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">;} /**/ /*/ /*队头队尾操作/ /*/ // static void QueueTailAdd(Queue *queue) {讯享网queue</span>->iTail++<span style="color: rgba(0, 0, 0, 1)">; queue</span>->iTail = queue->iTail % queue-><span style="color: rgba(0, 0, 0, 1)">iSize;} static void QueueHeadAdd(Queue *queue) {
讯享网queue</span>->iHead ++<span style="color: rgba(0, 0, 0, 1)">; queue</span>->iHead = queue->iHead % queue-><span style="color: rgba(0, 0, 0, 1)">iSize;} /**/ /*/ /*队列判空/ /*/ // uint8_t isQueueEmpty(Queue *queue) {讯享网</span><span style="color: rgba(0, 0, 255, 1)">if</span>(queue->iLength == <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">) { </span><span style="color: rgba(0, 0, 255, 1)">return</span> <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">; } </span><span style="color: rgba(0, 0, 255, 1)">return</span> <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">;} /**/ /*/ /*队列判满/ /*/ // uint8_t isQueueFull(Queue *queue) {</span><span style="color: rgba(0, 0, 255, 1)">if</span>(queue->iLength>=queue-><span style="color: rgba(0, 0, 0, 1)">iSize) { </span><span style="color: rgba(0, 0, 255, 1)">return</span> <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">; } </span><span style="color: rgba(0, 0, 255, 1)">return</span> <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">;} /**/ /*/ /*返回队列现有长度/ /*/ // int Queue_size(Queue *queue) {讯享网</span><span style="color: rgba(0, 0, 255, 1)">return</span> queue-><span style="color: rgba(0, 0, 0, 1)">iLength;} /**/ /*/ /往队尾放入元素*/ /*/ // uint8_t Queue_push(Queue *queue,Elem data) {</span><span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)">(isQueueFull(queue)) { </span><span style="color: rgba(0, 0, 255, 1)">return</span> <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">; } queue</span>->Datas[queue->iTail] =<span style="color: rgba(0, 0, 0, 1)"> data; QueueTailAdd(queue); queue</span>->iLength++<span style="color: rgba(0, 0, 0, 1)">; </span><span style="color: rgba(0, 0, 255, 1)">return</span> <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">;} /**/ /*/ /获取队头第一个元素(不删除)*/ /*/ // Elem Queue_front(Queue *queue) {讯享网</span><span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)">(isQueueEmpty(queue)) { </span><span style="color: rgba(0, 0, 255, 1)">return</span> <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">; } </span><span style="color: rgba(0, 0, 255, 1)">return</span> queue->Datas[queue-><span style="color: rgba(0, 0, 0, 1)">iHead];} Elem Queue_back(Queue *queue) {</span><span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)">(isQueueEmpty (queue)) { </span><span style="color: rgba(0, 0, 255, 1)">return</span> <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">; } </span><span style="color: rgba(0, 0, 255, 1)">return</span> queue->Datas[queue-><span style="color: rgba(0, 0, 0, 1)">iTail];} /**/ /*/ /删除队列第一个元素*/ /*/ // uint8_t Queue_pop(Queue *queue) {讯享网</span><span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)">(isQueueEmpty(queue)) { </span><span style="color: rgba(0, 0, 255, 1)">return</span> <span style="color: rgba(128, 0, 128, 1)">0</span>;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">queue empty</span>}QueueHeadAdd(queue); queue</span>->iLength--<span style="color: rgba(0, 0, 0, 1)">; </span><span style="color: rgba(0, 0, 255, 1)">return</span> <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">;} /**/ /*/ /*打印队列中的全部元素/ /*/ // void Queue_printf(Queue *queue) {讯享网</span><span style="color: rgba(0, 0, 255, 1)">int</span><span style="color: rgba(0, 0, 0, 1)"> i; </span><span style="color: rgba(0, 0, 255, 1)">int</span> temp = queue-><span style="color: rgba(0, 0, 0, 1)">iHead; printf(</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">queue datas:“);</span><span style="color: rgba(0, 0, 255, 1)">for</span>(i=<span style="color: rgba(128, 0, 128, 1)">0</span>;i<queue->iLength;i++<span style="color: rgba(0, 0, 0, 1)">) { printf(</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">%d </span><span style="color: rgba(128, 0, 0, 1)">"</span>,queue->Datas[temp++%queue-><span style="color: rgba(0, 0, 0, 1)">iSize]); } printf(</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">”); }
讯享网


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/174361.html