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

南宁免费自助建站模板农村自建房设计图一层平房

南宁免费自助建站模板,农村自建房设计图一层平房,免费网页申请,市场营销案例什么是队列#xff1f;上一篇文章写了什么是栈#xff0c;用C语言实现了栈#xff0c;既然说了栈#xff0c;不说队列#xff0c;感觉总是少了点什么#xff0c;所以就顺手写一个队列#xff0c;而且最近做项目也用到这个队列的代码。栈的特点是先进后出#xff0c;队列… 什么是队列上一篇文章写了什么是栈用C语言实现了栈既然说了栈不说队列感觉总是少了点什么所以就顺手写一个队列而且最近做项目也用到这个队列的代码。栈的特点是先进后出队列的特点是先进先出从这个特点可以知道队列是比较友好的不像栈那样最开始进去排队的人竟然是最后一个出来的。新建一个队列因为我这个例程是使用链表实现队列的所以新建一个队列实际上就是开辟一个内存空间用来存储队列的头部。跟栈一样我们理解了建立一个队列就是需要建立一个头开辟的这个空间代表的是这个队列就好比你老爸就可以代表你们家庭不管你家有多少人有多少个小孩你老爸始终都是这个家庭的户主。/*创建队列外部释放内存*/ QueueInfo_st *createQueue(void) { QueueInfo_st *queue (QueueInfo_st *)malloc(sizeof(QueueInfo_st)); if(NULL queue) { printf(malloc failed\n); return NULL; } queue-next NULL; return queue; }向队列中插入数据向队列插入数据我做的有点麻烦先是遍历链表找到这个链表的尾部然后再在链表的尾部插入数据看文章的大神有好的方法可以指出来我觉得应该有更加优秀的方法的。/*入队列0表示成非0表示出错*/ int queue_push(QueueInfo_st *s,ElementType value) { /*用来保存尾部指针*/ QueueInfo_st *temp (QueueInfo_st *)malloc(sizeof(QueueInfo_st)); if(NULL temp) { printf(malloc failed\n); return FAILURE; } /*找到链表的尾部*/ while(s-next ! NULL) { s s-next; } temp-value value; temp-next s-next; s-next temp; return SUCCESS; }取出队列的数据取出队列的数据也就是把头部指向的下一个链表里面的数据给取出来取出来要记得释放内存哈这一步尤其重要。/*出队列*/ int queue_pop(QueueInfo_st *s,ElementType *value) { /*首先判断队列是否为空*/ if(queue_is_empty(s)) return FAILURE; /*找出队列顶元素*/ *value s-next-value; /*保存等下需要free的指针*/ QueueInfo_st *temp s-next; /*更换队列顶的位置*/ s-next s-next-next; /*释放队列顶节点内存*/ if(temp!NULL)/*先判断指针是否为空*/ free(temp); temp NULL; return SUCCESS; }源码例程#include stdio.h #include stdlib.h #include stdint.h #include stdbool.h typedef int32_t ElementType; /*队列元素类型*/ #define SUCCESS 0 #define FAILURE -1 /*定义队列结构*/ typedef struct QueueInfo { ElementType value; /*队列存储的数据*/ struct QueueInfo *next; /*指向队列的下一个元素*/ }QueueInfo_st; /*函数声明*/ QueueInfo_st *createQueue(void); int queue_push(QueueInfo_st *s,ElementType value); int queue_pop(QueueInfo_st *s,ElementType *value); int queue_top(QueueInfo_st *s,ElementType *value); int queue_is_empty(QueueInfo_st *s); /*创建队列外部释放内存*/ QueueInfo_st *createQueue(void) { QueueInfo_st *queue (QueueInfo_st *)malloc(sizeof(QueueInfo_st)); if(NULL queue) { printf(malloc failed\n); return NULL; } queue-next NULL; return queue; } /*入队列0表示成非0表示出错*/ int queue_push(QueueInfo_st *s,ElementType value) { /*用来保存尾部指针*/ QueueInfo_st *temp (QueueInfo_st *)malloc(sizeof(QueueInfo_st)); if(NULL temp) { printf(malloc failed\n); return FAILURE; } /*找到链表的尾部*/ while(s-next ! NULL) { s s-next; } temp-value value; temp-next s-next; s-next temp; return SUCCESS; } /*出队列*/ int queue_pop(QueueInfo_st *s,ElementType *value) { /*首先判断队列是否为空*/ if(queue_is_empty(s)) return FAILURE; /*找出队列顶元素*/ *value s-next-value; /*保存等下需要free的指针*/ QueueInfo_st *temp s-next; /*更换队列顶的位置*/ s-next s-next-next; /*释放队列顶节点内存*/ if(temp!NULL)/*先判断指针是否为空*/ free(temp); temp NULL; return SUCCESS; } /*访问队列顶元素*/ int queue_top(QueueInfo_st *s,ElementType *value) { /*首先判断队列是否为空*/ if(queue_is_empty(s)) { return FAILURE; } *value s-next-value; return SUCCESS; } /*判断队列是否为空空返回1未空返回0*/ int queue_is_empty(QueueInfo_st *s) { /*队列顶指针为空则队列为空*/ if(s-next NULL) { printf(队列为空\n); return true; } return false; } int main(void) { int i 0; int data 0; QueueInfo_st * queue; queue createQueue(); for(i 0 ;i 20;i) { queue_push(queue,i); } for(i 0;i20;i) { data 0; queue_pop(queue,data); printf(%d \n,data); } }总结队列是基本的数据结构考试和笔试应该会经常遇到希望大家在面试的时候还是能随手就写出一个队列秒杀其他同学在实际项目中还需要了解环形队列也是先进先出的队列但是环形队列它还体现在环上我们上面建立的队列是没有大小限制的但是环形队列是有大小限制的如果插入的数据大于环形队列的大小就会把第一个数据给覆盖或者插入失败至于是什么逻辑都是代码实现的都要去看代码理解其中的原理。附加题使用C实现栈关于这个附加题我想起来我有一个邻居他女儿现在是小学一年级班里面的同学读书都非常厉害如果考试考个90分以下的基本就是班级里面的倒数了现在的行业竞争非常激烈小学也是一样你们以为考试考100分就是第一名了吗那么你就是真的想多了考试考105分都是并列几个第一名的所以我们这个题目也是一样使用C来实现一个栈这个跟上一次的文章刚好呼应体现了几个问题一个是C 和C的不同通过面向对象的思想实现栈代码会少很多而且封装也很好。对于初学者也可以理解类的思想构造函数和析构函数等等。这个代码就无偿奉献给大家希望这个附加题让大家比其他同学多5分。扫码或长按关注回复「加群 」进入技术群聊
http://www.pierceye.com/news/305492/

相关文章:

  • 西安网站排名公司上海工商网查询官网
  • 网站建设协调机制建网站 可以看到访客吗
  • 学生做网站的工作室南和住房和城乡建设局网站
  • 潍坊网站制作案例广东十大网站建设排名
  • 网站建设市场调研框架网站建设流程步骤怎么样
  • 喜茶品牌策划全案案例seo技术
  • 简速做网站中国企业网站建设案例
  • 做网站不给源码莱州网站建设包年多少钱
  • 好玩有趣的网站贵州省城乡建设厅网站材料价
  • 投资公司网站设计上海自动seo
  • 网络营销导向网站建设的基础是什么创新驱动发展战略的内容
  • 银狐鑫诺科技 网站建设深圳画册设计价格
  • 邵阳网站建设推广优化游戏性能的软件
  • wp做网站难吗销售产品单页面网站模板
  • 网站子域名 更换网站开发什么方式
  • 学做面食最好的网站设计公司logo大全
  • wordpress建站入门手机网站跳转怎么办
  • 好网站开发培训wordpress是否免费
  • 建设国际互联网网站网站建设制作流程
  • 开发一个网站做爬虫手机网站建设视频
  • 网站搜索功能模块公众号开发菜单
  • 公司想做个自己的网站怎么做网络营销与管理专业
  • 网站设计中国内优秀企业网站欣赏深圳商城网站设计公司
  • 泌阳县住房和城乡建设局网站wordpress注册去掉电子邮件
  • 电商网站设计目的活动策划怎么写
  • 做网站有限公司智慧团建官方网站
  • 南京建设网站公司哪家好科技创新论文800字
  • 网站app的区别是什么深圳沙井做网站公司
  • 珠海网站建站js写wordpress
  • 公司做网站怎么做账网站建设都需要买什么东西