当前位置: 首页 > news >正文

濮阳市网站建设_网站建设公司_导航易用性_seo优化

关于 建设 旅游网站 建议,网页版梦幻西游贴吧,临沂建站平台,长沙网站托管简介 队列也是一种数据结构#xff0c;队列也可以用来存放数字每次只能向队列里将入一个数字#xff0c;每次只能从队列里获得一个数字在队列中#xff0c;允许插入的一段称为入队口#xff0c;允许删除的一段称为出队口它的原则是先进先出(FIFO: first in first out)队列也可以用来存放数字每次只能向队列里将入一个数字每次只能从队列里获得一个数字在队列中允许插入的一段称为入队口允许删除的一段称为出队口它的原则是先进先出(FIFO: first in first out)先进入队列的数据先出去后进入的后出去。队列的插入操作称为入队队列的删除操作称为出队 以下是队列中进行入队和出队的演示操作数据1先进也是数据1先出 代码实现 初始化队列 typedef struct queue{int* elements; // 存储区int cap; // 队列的容量int rear; // 入队口int front; // 出队口int size; // 队列当前大小 }queue_t;初始化队列 void queue_init(queue_t* pqueue, int cap){// 分配存储区空间pqueue-elements malloc(sizeof(int) * cap);if(pqueue-elements NULL){printf(内存分配失败\n);return;}// 赋值容量pqueue-cap cap;// 此时因为没有收数据出队口和入队口都是0队列当前大小也是0pqueue-rear 0;pqueue-front 0;pqueue-size 0; }销毁队列 void queue_deinit(queue_t* pqueue){free(pqueue-elements);pqueue-elements NULL;pqueue-cap 0;pqueue-rear 0;pqueue-front 0;pqueue-size 0; }判断队列是否已满 int queue_full(queue_t* pqueue){// 当sizecap的时候说明已满反之则没满return pqueue-size pqueue-cap; }判断队列是否为空 int queue_empty(queue_t* pqueue){// 当size0的时候说明为空反之则不为空return pqueue-size 0; }以下是一组入队出队的操作 入队 void queue_push(queue_t* pqueue, int data){// 参考上面的视频当此时还存在入队操作时说明队列还没满// 但是此时rear已经超过索引值了(也就是与cap值相等)需要将rear重置为0;if(pqueue-rear pqueuecap)pqueue-rear 0;pqueue-elements[pqueue-rear] data;pqueue-size; }出队 int queue_pop(queue_t* pqueue){// 与入队函数类似当此时还存在出队操作时说明队列不为空// 但是此时front已经超过索引值了也就是与cap值相等需要将front重置为0if(pqueue-front pqueue-cap)pqueue-front 0;pqueue-size--;return pqueue-elements[pqueue-front]; }实例代码 创建三个文件: queue.c、queue.h、main.c实现上面动图中的操作 queue.c定义队列具体的函数 #include queue.h// 初始化队列 void queue_init(queue_t* pqueue, int cap){pqueue-elements malloc(sizeof(int) * cap);if(pqueue-elements NULL){ printf(分配队列存储区失败!\n);return;}pqueue-cap cap;pqueue-rear 0;pqueue-front 0;pqueue-size 0; }// 销毁队列 void queue_deinit(queue_t* pqueue){free(pqueue-elements);pqueue-elements NULL;pqueue-cap 0;pqueue-rear 0;pqueue-front 0;pqueue-size 0; }// 入队 void queue_push(queue_t* pqueue, int data){if(pqueue-rear pqueue-cap)pqueue-rear 0;pqueue-elements[pqueue-rear] data;pqueue-size; }// 出队 int queue_pop(queue_t* pqueue){if(pqueue-front pqueue-cap)pqueue-front 0;pqueue-size--;return pqueue-elements[pqueue-front]; }//判断队列是否已满 int queue_full(queue_t* pqueue){return pqueue-size pqueue-cap; }// 判断队列是否为空 int queue_empty(queue_t* pqueue){return pqueue-size 0; }queue.h声明队列的相关函数和定义队列 #ifndef __QUEUE_H #define __QUEUE_H#include stdio.h #include stdlib.h// 定义队列 typedef struct queue{int* elements;int cap;int rear;int front;int size;}queue_t;extern void queue_init(queue_t* pqueue, int cap); extern void queue_deinit(queue_t* pqueue); extern void queue_push(queue_t* pqueue, int data); extern int queue_pop(queue_t* pqueue); extern int queue_full(queue_t* pqueue); extern int queue_empty(queue_t* pqueue);#endifmain.c主函数使用队列 #include queue.hint main(void){// 1. 创建一个队列queue_t queue;// 2. 初始化队列queue_init(queue, 4);// 3. 入队4个数据printf(开始第一次入队4个数据: );int data 10;for(int i 0; i 4; i){if(!queue_full(queue)){printf(%d , data);queue_push(queue, data);data 10;}}printf(\n此时还剩%d个数据\n\n, queue.size);// 4. 出队2个数据printf(开始第一次出队2个数据: );for(int i 0; i 2; i){if(!queue_empty(queue)){data queue_pop(queue);printf(%d , data);}}printf(\n此时还剩%d个数据\n\n, queue.size);// 5. 入队2个数据printf(开始第二次入队2个数据: );data 10;for(int i 0; i 2; i){if(!queue_full(queue)){printf(%d , data);queue_push(queue, data);data 10;}}printf(\n此时还剩%d个数据\n\n, queue.size);// 6. 将所有数据全部取出printf(将全部数据取出: );while(!queue_empty(queue)){data queue_pop(queue);printf(%d , data);}printf(\n此时还剩%d个数据\n\n, queue.size);// 销毁队列queue_deinit(queue);return 0; }
http://www.ihoyoo.com/news/37386.html

相关文章:

  • 河源市住宅和城乡规划建设局网站做电影网站需要注意什么软件
  • fusion做电影网站卡死十大旅游电子商务网站
  • 如何给自己开发的网站加域名wordpress如何开启redis
  • 分类信息的网站如何推广网页设计素材图标
  • 网站建设礻金手指下拉十二双语网站模板
  • 四川城乡建设厅官方网站开发公司房价制定
  • 今鼎网站建设建立企业网站的缺点
  • 商业网站首页怎么做新零售平台软件系统
  • 网站设网站设计创建公司主页
  • 珠海网站建设工程酷家乐在线家装设计
  • 重庆公司网站设计制作下载手机商城app
  • 公司网站制作有哪些注意事项广州做网站公司电话
  • 自己建设一个网站找培训机构的网站
  • 做设计什么网站可以兼职网站首页静态好还是动态好
  • 外贸网站建设模板下载承德专业做网站的公司
  • 怎么做快法务类似网站湖南金辉建设集团有限公司网站
  • 没有网站可以做seo排名吗做图片网站会侵权吗
  • 做图的模板下载网站有哪些内容wordpress删除无分类文章
  • 贵阳官方网站建设银行招聘网站甘肃分行
  • 学生做义工网站wordpress批量文章插件
  • 建设专业网站哪家技术好做教师章节试题哪个网站
  • 做简易网站邯郸房产信息网官网
  • 做阿里巴巴网站公司黑龙江省营商环境建设监督局网站
  • 酒店平台网站建设宝塔面板搭建wordpress
  • 做婚恋网站的翻译好吗php做网站需要后台吗
  • 珠海网络网站建设网站更改模板 seo
  • 手机淘宝网页模板网站有利于做seo吗
  • 百度下载老版本临沂网站seo
  • 电子商务网站面临的安全隐患有哪些聊城网站建设售后服务
  • 天津网站建设班盐城网站建设咨询