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

网站维护与建设网站域名备案查询

网站维护与建设,网站域名备案查询,电脑上重新下载一个wordpress,我网站建设目录 队列的定义 队列的实现分析 代码实现 Queue.h Queue.c 队列的定义 队列是只允许在一端进行插入操作#xff0c;而在另一段进行删除操作的线性表。 首先#xff0c;让我们来看一看生活中的队列#xff0c;当我们去银行办理业务的时候#xff0c;我们进入银行的时候…目录 队列的定义 队列的实现分析 代码实现 Queue.h Queue.c 队列的定义 队列是只允许在一端进行插入操作而在另一段进行删除操作的线性表。 首先让我们来看一看生活中的队列当我们去银行办理业务的时候我们进入银行的时候都会去取票机那里去一个专属我们的序号当客服通过语音播报的时候如果是我们手里拿的好嘛时就轮到我们办理业务了。这是一种非常公平的方法先来的人先办理业务后来的人就只能等到前面的人办理完业务之后才到你。这种方法是非常公平的。 我们再来看一个例子当我们在玩电脑的时候当电脑不知道是什么原因卡死的时候。我们可能会疯狂的点击左键想要把我们进行的操作点出来可是电脑却没有反应。可是过了一会电脑突然不卡了你就会发现出现了很多很多同样的应用或者网页这就是当我们点击鼠标时鼠标已经把信息传给了电脑每一个操作都在排队等待被进行所以说会出现很多相同的应用或者网页。 我们可以看到队列就像是一个单向通道只能向前走不能后退。 队列是一种先进先出First In First Out)的线性表简称FIFO。允许插入的一端叫做队尾允许删除的一端叫做队头。 队列的实现分析 队列也有着两种实现方式一种是链式结构一种是顺序结构。相比于栈实现我们用的顺序结构在队列中我们用链式结构来实现要好一点。 队列使用顺序表实现的弊端当我们从队头出数据的时候需要改变队头的指向随着删除的数据增多就会出现多余的空间浪费这是我们就需要定义一个循环队列了而循环队列的大小是固定的操作起来又会很不方便所以说我们选择使用链式结构来实现队列。 队列的链式储存结构其实就是线性表的单链表只不过它只能尾进头出而已我们把它简称为链队列。因为队列只在头和尾进行操作所以说我们只需要定义两个指针一个指向头一个指向尾就行了。队列的插入与删除也很方便我们只需要将删除的节点释放掉改变头指针的指向就行插入的时候我们只需要改变尾指针的指向就可以了。 分析了这么多下面就让我们来实现一下代码吧。 代码实现 Queue.h #pragma once #define _CRT_SECURE_NO_WARNINGS 1 #include assert.h #include stdio.h #include stdlib.h #include stdbool.h //函数声明 结构体声明 //定义数据类型 typedef int datatype;//定义节点 typedef struct QNode {datatype data;struct QNode* next; }QNode;typedef struct Queue { //头节点QNode* head;//尾节点QNode* tail; }Queue;//队列初始化 void InitQueue(Queue* sp);//队列插入 (头删尾插 void InsertQueue(Queue* tmp);//出队列 void PopQueue(Queue* tmp);//销毁队列 void DestroyQueue(Queue* tmp);//队头数据 datatype FrontQueue(Queue* tmp);//队尾数据 datatype BackQueue(Queue* tmp);//队列长度 int QueueSize(Queue* tmp);//队列是否为空 bool QueueEmpty(Queue* tmp);Queue.c #include Queue.h//函数实现//队列初始化 void InitQueue(Queue* sp) { assert(sp);sp-head NULL;sp-tail NULL; }//链表插入 (头删尾插 void InsertQueue(Queue* tmp,datatype x) {assert(tmp);QNode* cur (QNode*)malloc(sizeof(QNode));if (cur NULL){perror(malloc fail);exit(-1);}cur-data x;cur-next NULL;//如果是空队列先直接赋值if (tmp-tail NULL){tmp-head cur;tmp-tail cur;}//如果不是空队列就尾插else{tmp-tail-next cur;tmp-tail cur;} }//出队列 void PopQueue(Queue* tmp) {assert(tmp);//队列的头不能为空assert(tmp-head);//只有一个节点的情况if (tmp-head-nextNULL){ free(tmp-head);tmp-head tmp-tail NULL;}//不只有一个节点的情况else{ QNode* cur tmp-head-next;free(tmp-head);tmp-head cur;} }//队头数据 datatype FrontQueue(Queue* tmp) {assert(tmp);assert(tmp-head);return tmp-head-data; }//队尾数据 datatype BackQueue(Queue* tmp) {assert(tmp);assert(tmp-tail);return tmp-tail-data; }//队列长度 int QueueSize(Queue* tmp) {int count 0;QNode* cur tmp-head;//遍历队列while (cur){ count;cur cur-next;}//返回长度return count; }//队列是否为空 bool QueueEmpty(Queue* tmp) { //是空返回true 不是空返回falsereturn tmp-head NULL; }//销毁队列 void DestroyQueue(Queue* tmp) {assert(tmp);QNode* del tmp-head;//释放节点while (del){QNode* cur del-next;free(del);del cur;}del NULL;tmp-head tmp-tail NULL; } 以上就是关于队列的实现以及我对队列的一些理解如果有什么错误还请大家指出。
http://www.pierceye.com/news/512729/

相关文章:

  • 长春市网站开发广东一站式网站建设推荐
  • 企业网站推广策略商会联盟网站建设方案
  • 清丰网站建设百度推广建设网站是不是合发
  • 邢台12345网站哪个公司的装饰设计公司
  • 嘉兴网嘉兴网站建设手机网站管理软件
  • 网站主色调简介怎么说本地常州微信网站建设
  • 电子商务网站数据库建设怎样推广一个网站
  • illustrator 学习网站wordpress外链产品
  • 电脑端网站一般做多宽最好网页游戏制作成本
  • 怎样做好手机网站建设wordpress开启xml rpc
  • 泉州企业网站建设公司做外贸要建什么网站
  • 找人做网站价格永城网站设计公司
  • 如何让网站做网页适配深圳市门户网站建设多少钱
  • 中金超钒 网站建设淘客推广方法
  • 网站建设的基本流程域名备案需要哪些资料
  • 怎么查找网站死链怎么自己做微信推送新闻
  • 做网站的人能看到浏览的人的信息吗怎么刷网站权重
  • 有了域名搭建网站详细步骤服务外包有哪些
  • 外贸网站样式传扬互动网站建设公司
  • 企业网站建设需要哪些资料信息免费推广工具
  • 网站怎么更新网页内容如何把自己的产品放到网上卖
  • jQuery网站建设中倒计时代码提高工作效率的重要性
  • 网站建设业务介绍深圳观澜网站建设
  • 最简单的做网站网站开发项目需求文档
  • wordpress网站打开速度小程序搜索排名帝搜sem880官网
  • 台州做网站公司企业网站seo策略
  • 专业网站建设推广网络营销推广方法和手段有哪些
  • 莘县做网站推广2345浏览器官方网站
  • 深圳网站建设公司为什mrskinlove wordpress
  • html 网站建设中模板网络营销推广与策划