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

电子工程建设信息网站lamp网站架构

电子工程建设信息网站,lamp网站架构,河南平台网站建设设计,商场建设相关网站1.队列的定义 队列是一种特殊的线性表#xff0c;它遵循先进先出#xff08;FIFO#xff09;的原则。在队列中#xff0c;只允许在表的一端进行插入操作#xff08;队尾#xff09;#xff0c;而在另一端进行删除操作#xff08;队头#xff09;。这种数据结构确保了最… 1.队列的定义 队列是一种特殊的线性表它遵循先进先出FIFO的原则。在队列中只允许在表的一端进行插入操作队尾而在另一端进行删除操作队头。这种数据结构确保了最先进入队列的元素总是最先离开队列。队列中没有元素时被称为空队列。队列的组织和实施训练通常由队列条令予以规定用于规范部队、分队队列及其在各种条件下的运动队形和动作。 出队的是队头入队的为队尾 2.实现队列  对于队列我们知道是一种线性表我们可以使用单链表、双向链表或者数组都可以实现这里我们首先介绍使用单链表实现的。 对于单链表实现队列我们知道队列有队头和队尾所以设置两个指针*phead 和*ptail表示头尾但是如何找到头和尾需要讨论如果只是创建一个单链表那么索引头尾就十分繁琐所以我们可以设计两个链表一个存储数据一个索引头尾这样就很方便的实现了队列。 typedef int QDataType;typedef struct QueueNode {struct QueueNode* next;QDataType val; }QNode;typedef struct Queue {QNode* phead;QNode* ptail;int size; }Queue; 解释创建一个单链表 QueueNode 用来存储队列元素再创建一个单链表 Queue 索引队头和队尾插入数据时 QueueNode 使用动态内存申请开辟空间节点 newnode 尾节点 *ptail 指向新开辟的节点即索引队尾队头保持不变从而实现索引头尾的功能。 3.队列的相关操作 3.1 初始化和销毁 初始化断言传入指针不为NULL将起索引作用的链表头尾均置为NULL链表长度初始化为0。 void QueueInit(Queue* pq) {assert(pq);pq-phead NULL;pq-ptail NULL;pq-size 0; }销毁创建一个cur指针保存头结点依次释放最后将整个链表初始化。 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; } 3.2 插入和删除 插入队列只有队尾插入所以直接在QueueNode单链表上动态内存开辟一个newnode新节点然后让单链表Queue索引头尾修改Queue中的数据。 // 队尾插入 void QueuePush(Queue* pq, QDataType x) {assert(pq);QNode* newnode (QNode*)malloc(sizeof(QNode));if (newnode NULL){perror(malloc fail);return;}newnode-next NULL;newnode-val x;if (pq-ptail NULL){pq-phead pq-ptail newnode;}else{pq-ptail-next newnode;pq-ptail newnode;}pq-size; } 删除 首先判断删除的链表是否为NULL不为NULL则可以删除所以创建一个新的next 保存待删除节点释放节点置为NULL当然若只有一个节点即*phead就是*ptail将他们置为NULL即可。 // 队头删除 void QueuePop(Queue* pq) {assert(pq);assert(pq-size ! 0);/*QNode* next pq-phead-next;free(pq-phead);pq-phead next;if (pq-phead NULL)pq-ptail NULL;*/// 一个节点if (pq-phead-next NULL){free(pq-phead);pq-phead pq-ptail NULL;}else // 多个节点{QNode* next pq-phead-next;free(pq-phead);pq-phead next;}pq-size--; } 3.3 取出队头或队尾的数据 取出队头这时两个单链表的作用就体现出来了取队头直接取phead-val的元素即可。 QDataType QueueFront(Queue* pq) {assert(pq);assert(pq-phead);return pq-phead-val; }取出队尾直接返回尾节点ptail-val的数据即可。 QDataType QueueBack(Queue* pq) {assert(pq);assert(pq-ptail);return pq-ptail-val; } 3.4 判空与计算链表长度 计算链表长度直接返回Queue中的size即可 int QueueSize(Queue* pq) {assert(pq);return pq-size; }判空 判断链表长度是否为0是则为空反之不为空。 bool QueueEmpty(Queue* pq) {assert(pq);return pq-size 0; }
http://www.pierceye.com/news/926195/

相关文章:

  • 婚恋网站翻译可以做吗科技局网站建设方案
  • 长沙哪里学网站建设德阳做网站的公司
  • 制作短链接网站做抽奖网站违法吗
  • 网站备案每年审吗做网站做推广
  • 网站名称 规则个人网页模板背景
  • 网站制作方案策划简历网站建设咨询有客诚信网站建设咨询
  • 格尔木市住房和城乡建设局网站能看全景的地图软件
  • 一站式网站建设与运营wordpress后台代码修改
  • 企业品牌类网站有哪些做网站建设的公司是什么类型
  • 自己制作的网站怎么做分页2022建站市场
  • 网贷审核网站怎么做wordpress 文章列表页
  • 搬家网站建设公司西安是哪个省市
  • php 网站 整合 数据库智能建站系统个人网站
  • 福田区罗湖区宝安区龙华区seo上首页排名
  • 网站建设业务员提成企业网站 需求
  • 做淘宝客网站 首选霍常亮国外网页设计
  • 天津小型企业网站设计方案网页升级访问每天自动更新 下载
  • 好的学习网站打广告壹搜网站建设优化排名
  • 响应式设计 手机网站手机自己制作app软件
  • 东方头条网站源码杭州正晖建设工程有限公司网站
  • 阿里巴巴网站建设与维护深圳民治网站建设
  • 郑州短视频代运营seo外链是什么
  • 网站建设公司 经营资质wordpress文学
  • 手机网站建设请示常州建设网站公司哪家好
  • 网站开发报价ppt重庆沙坪坝有哪些大学
  • 牛商网做的包装盒网站怎么在门户网站上发布
  • 北京网络公司建站成品app直播源码下载
  • 帮忙建站的公司百度收录好的网站排名
  • 芯火信息做网站怎么样郑州网站建设老牌公司
  • 龙华营销型网站建设在线生成短链接网址