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

郑州网站建设方案优化5g云网站建设

郑州网站建设方案优化,5g云网站建设,辽宁工程建设信息网诚信库怎么填,wordpress插件中心详解C语言实现顺序队列~#x1f60e;前言#x1f64c;预备小知识#x1f64c;队列的概念及结构#x1f60a;1.顺序队列头文件编写#x1f64c;2.Queue.c文件的编写#x1f64c;1#xff09;队列的初始化函数实现#x1f60a;2#xff09;队列的销毁函数实现#x1f6… 详解C语言实现顺序队列~前言预备小知识队列的概念及结构1.顺序队列头文件编写2.Queue.c文件的编写1队列的初始化函数实现2队列的销毁函数实现3队尾入函数实现4队头出函数实现5取队首元素函数实现6取队尾元素函数实现7队列元素个数函数实现2判空函数实现3.Test.c文件的编写总结撒花博客昵称博客小梦 最喜欢的座右铭全神贯注的上吧 作者简介一名热爱C/C算法等技术、喜爱运动、热爱K歌、敢于追梦的小博主 博主小留言哈喽各位CSDN的uu们我是你的博客好友小梦希望我的文章可以给您带来一定的帮助话不多说文章推上欢迎大家在评论区唠嗑指正觉得好的话别忘了一键三连哦 前言 哈喽各位友友们我今天又学到了很多有趣的知识现在迫不及待的想和大家分享一下我仅已此文手把手带领大家详解C语言实现顺序队列~ 结合链表的相关算法根据队列先进先出的结构特点实现我们顺序队列。都是精华内容可不要错过哟 预备小知识 队列的概念及结构 队列只允许在一端进行插入数据操作在另一端进行删除数据操作的特殊线性表队列具有先进先出 FIFO(First In First Out) 入队列进行插入操作的一端称为队尾出队列进行删除操作的一端称为队头 队列的结构示意图 1.顺序队列头文件编写 头文件的编写的整体思路分析 这里是有关头文件的编写和各种功能函数的声明首先用typedef关键字给存储数据类型取别名这样做的好处是以后想要改变队列的数据类型只需修改typedef int DataType;里的int即可。定义一个结构体DataType aDataType Top队首元素下标DataType Last。DataType Capacity以及队列容量。然后是各个功能函数声明* #pragma once #includestdio.h #includestdlib.h #includeassert.h #includestdbool.htypedef int DataType; typedef struct SqQueue {DataType* a;DataType Top;DataType Last;DataType Capacity;}SQ; //队列的初始化 void SqQueueInit(SQ* ps); //队列的销毁 void SqQueueDestory(SQ* ps); //队尾入 void SqQueuePush(SQ* ps, DataType x); //队头出 void SqQueuePop(SQ* ps); //取队首元素 DataType SqQueueFront(SQ* ps); //取队尾元素 DataType SqQueueBack(SQ* ps); //队列元素个数 DataType SqQueueSize(SQ* ps); //判空 bool SqQueueEmpty(SQ* ps); 2.Queue.c文件的编写 1队列的初始化函数实现 编写的整体思路分析 先用assert确保ps指针的有效性然后让指针a为NULL让队列容量头尾下标都为0. //队列的初始化 void SqQueueInit(SQ* ps) {assert(ps);ps-a NULL;ps-Capacity 0;ps-Top ps-Last 0;} 2队列的销毁函数实现 编写的整体思路分析 先用assert确保ps指针的有效性然后将a指向的空间返还给操作系统。然后将a置为NULL防止野指针的问题。然后让 ps-Last ps-Top ps-Capacity 0; /队列的销毁 void SqQueueDestory(SQ* ps) {assert(ps); free(ps-a);ps-a NULL;ps-Last ps-Top ps-Capacity 0;} 3队尾入函数实现 编写的整体思路分析 先用assert确保ps指针的有效性如果ps-Last ps-Capacity则让节点个数增加为0的时候先生成四个节点数如果满了则是增2倍算法思想。然后用realloc动态申请空间用if判断是否增容成功。然后将指针a指向新开辟的空间所在的地址把容量数值改为newnode。如果一开始为空的情况则让ps-a[ps-Top] ps-a[ps-Last] x //队尾入 void SqQueuePush(SQ* ps, DataType x) {assert(ps);if (ps-Last ps-Capacity){DataType newnode ps-Capacity 0 ? 4 : ps-Capacity * 2;DataType* temp (DataType*)realloc(ps-a,sizeof(DataType)*newnode);if (temp NULL){printf(realloc fail\n);exit(-1);}ps-a temp;ps-Capacity newnode;}if (ps-Last ps-Top){ps-a[ps-Top] ps-a[ps-Last] x;ps-Last;}else{ps-a[ps-Last] x;ps-Last;}} 4队头出函数实现 编写的整体思路分析 先用assert确保ps指针的有效性调用判空函数如果队列为空则不用执行此操作执行则报错。直接让Top加1即可。 //队头出 void SqQueuePop(SQ *ps) {assert(ps);assert(!SqQueueEmpty(ps));ps-Top; } 5取队首元素函数实现 编写的整体思路分析 先用assert确保ps指针的有效性直接返回下标为Top的元素的数值。 //取队首元素 DataType SqQueueFront(SQ* ps) {assert(ps);return ps-a[ps-Top]; } 6取队尾元素函数实现 编写的整体思路分析 先用assert确保ps指针的有效性直接返回下标为Last-1的元素的数值。 //取队尾元素 DataType SqQueueBack(SQ* ps) {return ps-a[ps-Last-1]; } 7队列元素个数函数实现 编写的整体思路分析 先用assert确保ps指针的有效性直接返回下标为Last的数值。 //队列元素个数 DataType SqQueueSize(SQ* ps) {assert(ps);return ps-Last;} 2判空函数实现 编写的整体思路分析 先用assert确保ps指针的有效性如果 ps-Top ps-Last为真则返回1队列为空。条件为假则返回0。 //判空 bool SqQueueEmpty(SQ* ps) {assert(ps);return(ps-Top ps-Last); } 3.Test.c文件的编写 #includeQueue.hvoid Test1() {printf(队列输出\n);SQ s;SqQueueInit(s);SqQueuePush(s, 1);SqQueuePush(s, 2);SqQueuePush(s, 3);SqQueuePush(s, 4);SqQueuePush(s, 5);SqQueuePush(s, 6);SqQueuePush(s, 7);while (!SqQueueEmpty(s)){printf(%d, SqQueueFront(s));SqQueuePop(s);}printf(\n);SqQueueDestory(s);} void Test2() {SQ s;SqQueueInit(s);SqQueuePush(s, 1);SqQueuePush(s, 2);SqQueuePush(s, 3);SqQueuePush(s, 4);SqQueuePush(s, 5);SqQueuePush(s, 6);SqQueuePush(s, 7);printf(队列首元素%d\n, SqQueueFront(s));printf(队列尾元素%d\n, SqQueueBack(s));printf(队列元素个数:%d\n, SqQueueSize(s));SqQueueDestory(s);}int main() {Test1();Test2();return 0; } 功能测试结果展示图 总结撒花 本篇文章旨在分享详解C语言实现顺序队列。希望大家通过阅读此文有所收获如果我写的有什么不好之处请在文章下方给出你宝贵的意见。如果觉得我写的好的话请点个赞赞和关注哦~
http://www.w-s-a.com/news/171872/

相关文章:

  • 闸北区网站设计叫别人做网站后怎么更改密码
  • 为什么想做网站运营建设工程教育网站
  • 站长基地百度推广整体优化网站
  • 门窗 东莞网站建设wordpress外链论坛
  • 安徽省建设部网站官网还能用的wap网站
  • 企业网站设计开发网站关键词优化seo
  • 郑州高档网站建设台州网站建设推广
  • 广东省建设信息港网站WordPress手机缩略图设置
  • 优秀网站主题平顶山专业做网站公司
  • wordpress返回顶部插件wordpress站群seo
  • 企业网站建设报价表百度竞价托管哪家好
  • 织梦网站首页打开慢淄博网站推广那家好
  • 苏州高端网站建设kgwl互动网站建设的主页
  • 宿州网站建设哪家公司好个人网站制作方法
  • 网站正能量晚上在线观看视频站长之家关键词挖掘工具
  • 建设网站怎么判断是电脑还是手机仿租号网站源码网站开发
  • seo百度网站排名软件重庆巫山网站设计公司
  • 搭建视频播放网站网站排名诊断
  • 网站域名注册网站centos做网站服务器
  • 网站服务器共享的 vpsh5页面制作软件电脑版
  • 免费手机网站申请上海网站建设设计公司哪家好
  • 站长工具大全企业网上书店网站建设设计
  • 做网站的专业公司公司网站是做的谷歌的
  • 做网站前期工作wordpress图片并排
  • 免费注册网站哪个好wordpress评论修改
  • 合肥模板网站建设软件赤峰公司网站建设
  • 毕业设计都是做网站吗深圳网站制作企业邮箱
  • 网站排名 优帮云小规模公司简介怎么写
  • 那个做头像的网站好选择手机网站建设
  • 设计一个网站花多少时间做视频网站适合用什么服务器