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

环形队列c++实现(c++ 环形队列)include lt stdlib h gt include lt stdio h gt include Queue h

大家好,我是讯享网,很高兴认识大家。



#include <stdlib.h> #include <stdio.h> #include Queue.h /**/ /*/ /创建队列*/ /*/ // uint8_t Queue_Init(Queue* queue,int size) { 
讯享网queue</span>-&gt;iSize =<span style="color: rgba(0, 0, 0, 1)"> size; queue</span>-&gt;iLength = <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">; queue</span>-&gt;iTail=<span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">; queue</span>-&gt;iHead=<span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">; queue</span>-&gt;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-&gt;<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>-&gt;iTail++<span style="color: rgba(0, 0, 0, 1)">; queue</span>-&gt;iTail = queue-&gt;iTail % queue-&gt;<span style="color: rgba(0, 0, 0, 1)">iSize; 
} static void QueueHeadAdd(Queue *queue) {
讯享网
queue</span>-&gt;iHead ++<span style="color: rgba(0, 0, 0, 1)">; queue</span>-&gt;iHead = queue-&gt;iHead % queue-&gt;<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-&gt;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-&gt;iLength&gt;=queue-&gt;<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-&gt;<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>-&gt;Datas[queue-&gt;iTail] =<span style="color: rgba(0, 0, 0, 1)"> data; QueueTailAdd(queue); queue</span>-&gt;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-&gt;Datas[queue-&gt;<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-&gt;Datas[queue-&gt;<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>-&gt;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-&gt;<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&lt;queue-&gt;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-&gt;Datas[temp++%queue-&gt;<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)"> 
); }

讯享网

小讯
上一篇 2025-06-15 16:36
下一篇 2025-05-11 09:38

相关推荐

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