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

市妇联门户网站平台建设情况深圳宝安区电子厂

市妇联门户网站平台建设情况,深圳宝安区电子厂,公众号制作模板网站,浙江省建设银行纪检官方网站目录 一、队列的概念和结构 ​二、队列的实现 2.1队列的初始化QueueInit 2.2队列的摧毁QueueDestroy 2.3插入结点QueuePush 2.4删除结点QueuePop 2.5返回队头QueueFront 2.6返回队尾QueueBack 2.7判断队列为空QueueEmpty 2.8统计队列数目QueueSize 一、队列的概念和…目录 一、队列的概念和结构 ​二、队列的实现  2.1队列的初始化QueueInit  2.2队列的摧毁QueueDestroy 2.3插入结点QueuePush 2.4删除结点QueuePop 2.5返回队头QueueFront 2.6返回队尾QueueBack 2.7判断队列为空QueueEmpty 2.8统计队列数目QueueSize 一、队列的概念和结构 队列只允许在一端进行插入数据操作在另一端进行删除数据操作的特殊线性表队列具有先进先出性质。FIFO(First In First Out) 入队列进行插入操作的一端称为队尾                                         出队列进行删除操作的一端称为队头 二、队列的实现  队列也可以数组和链表的结构实现使用链表的结构实现更优一些因为如果使用数组的结构出队列在数组头上出数据效率会比较低。 当用链表实现时我们布置的结构体肯定要包含一个val还需要一个next。 typedef int QDataType; typedef struct QueueNode {QDataType val;struct QueueNode* next; }QNode;但结构体的布置并非到这里就结束了当我们有数据要入队时我们是不是需要让头指针遍历一遍链表找到队尾呢而且要改变队尾前一个结点next的指向是不是要传入二级指针呢同样当我们布置其他函数体时也会遇到类似的问题。那么如何让我们的代码量化到最简呢 我们再设置一个结构体来存储相关的数据这样修改指向时不用再用二级指针而是只需要修改结构体的值即可。我们用phead指向队列的头结点便于出队用ptail指向队列的尾结点便于入队 typedef struct Queue {QNode* phead;QNode* ptail;int size; }Queue;2.1队列的初始化QueueInit  void QueueInit(Queue* pq) {assert(pq);pq-phead pq-ptail NULL;pq-size 0; } 2.2队列的摧毁QueueDestroy void QueueDestroy(Queue* pq) {assert(pq);QNode* cur pq-phead;while (cur){QNode* next cur-next;free(cur);cur next;}pq-phead pq-ptail NULL;pq-size 0; } 2.3插入结点QueuePush 首先我们要新开结点其次我们要判断链表是否为空如果为空那么ptail和phead都指向新结点如果不为空phead的指向不用改变而ptail的next要只想newnode然后再把ptail向后移 void QueuePush(Queue* pq, QDataType x) {assert(pq);QNode* newnode (QNode*)malloc(sizeof(QNode));if (newnode NULL){perror(malloc fail);return;}newnode-val x;newnode-next NULL;if (pq-ptail NULL){pq-ptail pq-phead newnode;}else{pq-ptail-next newnode;pq-ptail newnode;}pq-size; } 2.4删除结点QueuePop 首先先让队头指向next结点接着我们就要判断删除的是不是整个队列的最后一个结点如果删除的是最后一个结点那么就会影响到我们ptail的指向所以我们通过判断避免ptail变成野指针。 void QueuePop(Queue* pq) {assert(pq);// assert(pq-phead);QNode* del pq-phead;pq-phead pq-phead-next;free(del);del NULL;if (pq-phead NULL)pq-ptail NULL;pq-size--; } 2.5返回队头QueueFront QDataType QueueFront(Queue* pq) {assert(pq);assert(pq-phead);return pq-phead-val; } 2.6返回队尾QueueBack QDataType QueueBack(Queue* pq) {assert(pq);assert(pq-ptail);return pq-ptail-val; } 2.7判断队列为空QueueEmpty bool QueueEmpty(Queue* pq) {assert(pq);return pq-phead NULL; } 2.8统计队列数目QueueSize int QueueSize(Queue* pq) {assert(pq);return pq-size; }
http://www.lakalapos1.cn/news/12302/

相关文章:

  • 青岛网站设计制作网站建设流程文字稿
  • 建设好的网站怎么推广微信小程序
  • 健网站怎么做wordpress网站做h5分类
  • 杭州市萧山区市场建设开发网站网站域名如何优化
  • 国外黄冈网站推广软件免费吗小学微机作业做网站
  • 南昌网站开发海宁网站建设公司推荐
  • 怎么在阿里做网站得物app开发用了多少钱
  • 合肥道路建设从哪个网站可以看到做网站用小动画
  • 哪些网站可以免费申请建立模板
  • 旅游电网站建设目标关键一招
  • 柳州网站建设22网页设计优秀作品展示
  • 上海到北京机票济南百度整站seo推广
  • 东莞大型网站建设哪家好西安装修公司哪家口碑最好
  • 网格系统网站挂马网站 名单
  • 在闲鱼可以做网站吗房地产开发公司简介
  • 网站开发培训排名上海剑展投资管理有限公司
  • 绿色食品网站模板.htm一般做个小程序多少钱
  • 做网站着用什么电脑图片滤镜网站开发
  • 做美食的网站可以放些小图片连锁销售公司网站的建设方案
  • 网站建设图片logowordpress custom post type
  • 网站付费怎么做网站设计确认
  • tinypng wordpress宁波seo优化费用
  • 大庆城市建设投资网站广元网站建设优化
  • 杭州网站建设专家三河市网站建设
  • 网站建设售后协议西安建设工程信息网人员查询
  • 做网站用不用thinkphp一般做一个网站多少钱
  • 网站建设策划报价做暧暖免费观看网站
  • 如何用微信小程序做网站网站做自动群发百度搜录
  • 宿州市住房和城乡建设局网站怎么对一个网站做优化
  • 出格做网站怎么样网站建设兆金手指排名