C语言实现循环队列
创作时间:
作者:
@小白创作中心
C语言实现循环队列
引用
CSDN
1.
https://m.blog.csdn.net/weixin_41542504/article/details/138303063
循环队列是一种特殊的队列数据结构,其特点是队尾和队头可以相互覆盖,从而实现存储空间的循环利用。本文将通过C语言代码实现一个简单的循环队列,并演示其基本操作。
循环队列的C语言实现
#include <stdio.h>
#include <stdlib.h>
#define MAX_SIZE 6
typedef unsigned char uint8;
typedef unsigned int uint32;
typedef unsigned short WORD;
int queue[MAX_SIZE];
int head = 0;
int tail = 0;
// 入队操作
void enqueue(int element) {
if ((tail + 1) % MAX_SIZE == head) {
queue[tail] = element;
tail = (tail + 1) % MAX_SIZE;
head = (head + 1) % MAX_SIZE;
}
else
{
queue[tail] = element;
tail = (tail + 1) % MAX_SIZE;
}
return;
}
// 出队操作
int dequeue() {
if (head == tail) {
printf("队列为空\n");
return -1;
}
int result = queue[head];
head = (head + 1) % MAX_SIZE;
return result;
}
// 打印队列
void printQueue() {
int num = 0;
int y = head;
num = ((tail-head)+MAX_SIZE)%MAX_SIZE;
if(num == 0x00)
{
printf("队列为空\n");
}
else
{
for(int i = 0; i< num; i++)
{
printf("%d ",queue[y]);
y = (y + 1) % MAX_SIZE;
}
printf("\n");
}
}
int main() {
printQueue();
// 入队操作
enqueue(1);
enqueue(2);
enqueue(3);
enqueue(4);
enqueue(5);
printQueue(); // 输出: 1 2 3 4 5
// 出队操作
printf("出队元素: %d\n", dequeue());
printf("出队元素: %d\n", dequeue());
printQueue(); // 输出: 3 4 5
// 再次入队
enqueue(6);
enqueue(7);
enqueue(8);
enqueue(9);
printQueue(); // 输出: 5 6 7 8 9
return 0;
}
验证结果
以下是代码运行的验证结果:
通过上述代码和运行结果,我们可以看到循环队列的基本操作(入队、出队)以及队列元素的打印功能都得到了正确实现。循环队列通过取模运算实现了队尾和队头的循环覆盖,从而有效地利用了存储空间。
热门推荐
留学女生很寂寞吗?如何缓解孤独感?
小米IPD流程如何提升市场竞争力
全等三角形HL定理:斜边和直角边定理详解
国企挑大梁,并购重组进“活跃期”!多家公司透露产业链整合意向(附名单)
100平房子装修,电路部分材料怎么选?用量多少?
中国现当代文学农民形象流变轨迹
老年人高血压的特点及管理方法
腌肉放什么调料才香
源自对生命的歌颂 《孤勇者》等原创歌曲走红
数据分析与挖掘在各领域的应用场景
空气悬架加CDC减震系统解析
男士脸颊两侧出现黑斑的原因及解决方案
蛇都有哪些“超能力”?
临牌可以上高速吗?上高速怎么拿卡?关于临牌的常见问题看这里!
江苏灌南:7万亩小龙虾错峰上市,亩均增收3000元
戴维·赫伯特·劳伦斯和他的长篇小说《查泰莱夫人的情人》
《活佛济公》中的胭脂:一个美丽与善良的化身
30年老配方:腊鱼腌制详细教程,美味不长霉
曹叡的抉择:曹爽与司马懿的权力较量与曹魏的衰落
融入城市不易、离开城市困难:学者调研青年流动人口二代生活图景
长期听流水声对人有什么影响
普洱茶的度:冷泡还是热泡?
正确的减脂餐:科学减脂的全面指南
这五年“吓死人”的恐怖片,到底为什么恐怖?
监视居住和取保候审有什么区别
夏日追风!山东这几条自驾公路,风光绝美!
【案例警示】拘留10日!这些充电方式千万别存侥幸心理→
焦虑症怎么办?九种有效应对方法
白头发可以变黑吗?5大营养素助你改善白发问题
三个方法提升你的心理健康