C语言中循环队列如何实现
发表于:2025-11-15 作者:千家信息网编辑
千家信息网最后更新 2025年11月15日,今天小编给大家分享一下C语言中循环队列如何实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解
千家信息网最后更新 2025年11月15日C语言中循环队列如何实现
今天小编给大家分享一下C语言中循环队列如何实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
注意事项:
1、循环队列,是队列的顺序表示和实现。因为是尾进头出,所以和顺序栈不同的是需要将顺序队列臆造成一个环状的空间,以便在尾部添加满之后从头部空位开始插入。
2、也可以使用数组队列,也就是不能动态增长的顺序队列,这样不需要每次取模最大值来构成环形空间。每次插入新的队列尾元素时,尾指针增1,每当删除队列头元素时,头指针增1。
3、尾指针会出现在头指针之前,由此特性,循环队列在无法预估使用大小时,不宜使用。
4、在每一个指针递增的表达式中,都要加上一个% MAXQUEUE已使得每一次增值都在范围内。
#include#include#define MAXQUEUE 100typedef struct{ int *base; int front; int rear;}SqQueue, *Sqqueue; Sqqueue Creat(Sqqueue q);void Enqueue(Sqqueue q, int e);void Dequeue(Sqqueue q, int *e);void Traverse(Sqqueue q); int main(){ SqQueue q; int e; Sqqueue p = Creat(&q); Traverse(p); Dequeue(p, &e); Traverse(p); printf("the number that was deleted is :%d", e); return 0;} Sqqueue Creat(Sqqueue q){ Sqqueue p = q; p->base = (int *)malloc(MAXQUEUE * sizeof(int));//这里注意和链不同,开辟的是整片的数据空间,以base为基址 p->front = p->rear = 0; for (int i = 1; i < 10; i++) Enqueue(p, i); return p;}void Enqueue(Sqqueue q, int e){ if ((q->rear + 1) % MAXQUEUE == q->front) //如果尾指针下一个是头指针,即将其看成满队列(少利用一个空间)。否则只看头指针等于尾指针会有歧义。 exit(1); q->base[q->rear] = e; q->rear = (q->rear + 1) % MAXQUEUE; }void Dequeue(Sqqueue q, int *e){ if (q->front == q->rear) exit(1); (*e) = q->base[q->front]; q->front = (q->front + 1) % MAXQUEUE;}void Traverse(Sqqueue q){ for (int i = q->front; q->rear != i; i = (i + 1) % MAXQUEUE) printf("%d->", q->base[i]); printf("NULL");} 以上就是"C语言中循环队列如何实现"这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注行业资讯频道。
队列
指针
循环
知识
空间
篇文章
顺序
不同
语言
元素
内容
很大
最大
也就是
事项
动态
基址
大小
大部分
头部
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
如何选择网络安全性
ebd数据库安装
eth服务器抽水软件
江西电力时间同步服务器
帝国理工网络安全硕士专业
雕刻机服务器接线图
池州网络安全宣传
电子图书数据库有
数据库安全性思考
信息网络安全龙头股
中国电信网络安全观后感50字
国家网络安全宣传周笔记
mc皮肤数据库地址变更
房山区正规网络技术售后服务
旧密码数据库
电力电子软件开发什么方向好
北京智能消防软件开发多少钱
数据库图片如何复制
软件开发技术综合实验
服务器出现异常怎么办
供销社网络安全实施方案
山东中中网络技术有限公司
滨州软件开发哪家便宜
最近我的世界开创造服务器推荐
临沂游戏软件开发企业
杭州网络安全问题
数据库底层实现原理
做软件开发公司电话
网络安全的意义包括哪几点
互联网科技学校学什么