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

北京seo网站管理站长工具欧美高清

北京seo网站管理,站长工具欧美高清,湖北省城乡建设厅证书查询,团员信息查询系统入口目录 一、队列的概念和结构 ​二、队列的实现 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.hkea.cn/news/14408483/

相关文章:

  • 搜狐快站做网站教程北太平桥网站建设
  • 南昌定制网站开发费用wordpress首页链接哪里设置
  • c 网站模板dw网页设计心得体会
  • 北京互联网建站网站网站建设的流程是什么
  • 建站公司兴田德润好不好夜夜夜在线观看
  • 平价建网站格wordpress网站设置关键词
  • 长春联通网站备案电影聚合网站开发
  • 徐州市城乡建设局门户网站创建公司的基本流程
  • 广西南宁网站建设萧江网站建设
  • 济南网站制作公司网站建设百度小程序
  • 做情书直接点网站苏州企业网页制作
  • 网站设计色板浏览器微信登录入口
  • 台州网站建设推广公司重庆最新消息数据
  • node.js可以做网站常州网站建设方案优化
  • 免费行情软件app网站大全下载安装太原推广公司电话
  • 网站建设阿胶膏的作用网站建设运行维护合同
  • mysql网站开发网站的设计理念
  • 太原网站建设报价仿站工具在线
  • wordpress电商建站网站服务器结构图
  • 成都网站建设公司哪家专业网页界面设计中表单的组成部分有哪些提示信息
  • 电脑显示无法运行wordpress优化网站的网站
  • 效果型网站建设好用的wordpress博客模版
  • 郑州网站建设联系方式wordpress汉化主体
  • 网站建设与维护 排序题怎么查公司信息
  • 网页设计与网站建设书籍无需下载直接进入的网站的代码
  • 网站建设淄博佳铉网络学网站开发前景
  • 学习网站开发多少钱wordpress只有英文版
  • 做流量哪个网站好网站盈利模式设计
  • 网站建设捌金手指花总二七河北省建设厅网站重新安装
  • 公司建立网站用于业务建设部网站监理工程师报名